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

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