splitting hooks and using snapctl instead of local settings file

Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
This commit is contained in:
Ondrej Kubik 2017-11-04 19:20:37 +00:00
parent f7fe44fcdf
commit 3665a9131c
4 changed files with 27 additions and 52 deletions

View file

@ -3,34 +3,18 @@
# read wekan config
source $SNAP/bin/config
# TODO: uncomment following, once snapctl can be called from outside the hooks
# for key in ${keys[@]}
# do
# # snappy is picky about key syntax, using mapping
# MAP_KEY="KEY_$key"
# SNAPPY_KEY=
# if value=$(snapctl get ${!MAP_KEY}); then
# echo "$key='$value'"
# export $key=$value
# else
# # use default value
# default_value="DEFAULT_$key"
# echo "using default value: $key='${!default_value}'"
# export $key=${!default_value}
# fi
# done
# TODO: get rid of this workaround once above can be used
# loop through all values, and if not defined, use default value
for key in ${keys[@]}
do
if [ "x" == "x${!key}" ]; then
# use default value
default_value="DEFAULT_$key"
echo "using default value: $key='${!default_value}'"
export $key=${!default_value}
# echo "export $key='${!def_value}'" >> $SETTINGS_FILE
else
echo "$key='${!key}'"
fi
default_value="DEFAULT_$key"
description="DESCRIPTION_$key"
snappy_key="KEY_$key"
value=$(snapctl get ${!snappy_key})
if [ "x$value" == "x" ]; then
echo -e "$key=${!default_value} (default value)"
export $key=${!default_value}
else
echo -e "$key=$value"
export $key=$value
fi
done

28
snap/hooks/configure vendored
View file

@ -1,32 +1,10 @@
#!/bin/bash
exec >> $SNAP_COMMON/hook.log 2>&1
echo "$(date '+%Y-%m-%d %H:%M:%S') $0: Entering hook"
# read wekan config
. $SNAP/bin/config
# create run dir, we're going to use it for unix socket
mkdir -p $SNAP_DATA/share
mkdir -p $SNAP_DATA/shared
# settings were altered by user, safest way to get them applied is to restart service
# TODO: remove this workaround once it's not needed
# for the moment we can't read settings outside of the hook,
# so store all settings in helpper script which is then picked by main wrapper
echo -e "#!/bin/sh\n" > $SETTINGS_FILE
for key in ${keys[@]}
do
# snappy is picky about key syntax, using mapping
MAP_KEY="KEY_$key"
if value=$(snapctl get ${!MAP_KEY}); then
echo "export $key='$value'" >> $SETTINGS_FILE
elif [ -d "${!key}" ]; then
# store back value from SETTINGS_FILE
echo "export $key='${!key}'" >> $SETTINGS_FILE
fi
done
# set file executable
chmod 755 $SETTINGS_FILE
# we can't use snapctl to restart service, may be one day ....
echo "Setting has been updated, restart service."

12
snap/hooks/install Executable file
View file

@ -0,0 +1,12 @@
#!/bin/bash
exec >> $SNAP_COMMON/hook.log 2>&1
echo "$(date '+%Y-%m-%d %H:%M:%S') $0: Entering hook"
# coppy caddy file in place
[ ! -e $SNAP_COMMON/Caddyfile ] && cp $SNAP/Caddyfile $SNAP_COMMON/Caddyfile
# create run dir, we're going to use it for unix socket
mkdir -p $SNAP_DATA/share
mkdir -p $SNAP_DATA/shared

1
snap/hooks/post-refresh Symbolic link
View file

@ -0,0 +1 @@
install