From 444a02b9f9a71fcf0f10311af9bd58f704d5e985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Lebleu?= Date: Tue, 29 Sep 2015 18:45:07 +0200 Subject: [PATCH] [enh] Add app helpers to parse plain command output --- data/apps/helpers.d/user | 14 ++++++++++++-- data/apps/helpers.d/utils | 24 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 data/apps/helpers.d/utils diff --git a/data/apps/helpers.d/user b/data/apps/helpers.d/user index de9a2cbce..1fd8d203c 100644 --- a/data/apps/helpers.d/user +++ b/data/apps/helpers.d/user @@ -1,5 +1,15 @@ - # Check if a user exists +# +# usage: ynh_user_exists username +# | ret: retcode - 0 if user exists, 1 otherwise ynh_user_exists() { sudo yunohost user list --json | grep -q "\"username\": \"${1}\"" -} \ No newline at end of file +} + +# Retrieve a user information +# +# usage: ynh_user_info username key +# | ret: string - the key's value +ynh_user_get_info() { + sudo yunohost user info "${1}" --plain | ynh_get_plain_key "${2}" +} diff --git a/data/apps/helpers.d/utils b/data/apps/helpers.d/utils new file mode 100644 index 000000000..87cd47f6b --- /dev/null +++ b/data/apps/helpers.d/utils @@ -0,0 +1,24 @@ +# Extract a key from a plain command output +# +# usage: ynh_get_plain_key key [subkey [subsubkey ...]] +# | ret: string - the key's value +ynh_get_plain_key() { + prefix="#" + founded=0 + key=$1 + shift + while read line; do + if [[ "$founded" == "1" ]] ; then + [[ "$line" =~ ^${prefix}[^#] ]] && return + echo $line + elif [[ "$line" =~ ^${prefix}${key}$ ]]; then + if [[ -n "$1" ]]; then + prefix+="#" + key=$1 + shift + else + founded=1 + fi + fi + done +}