Plume/snap/hooks/configure
Christopher James Halse Rogers b5eecbf2e7 Add Snapcraft metadata and install/maintenance hooks (#666)
* Add Snapcraft metadata and install/maintenance hooks

* Move set-environment script into snap/local

* snap: Remove diesel-cli part.

This *was* necessary as of 0.3.0, but now `plm migrations run` does the job.

* snap: Add an actual description

* snap: Add an 'enabled' config item.

Don't try to run until enabled is set, and automatically run the
migrations when we are enabled
2019-09-16 12:33:25 +02:00

49 lines
1.2 KiB
Bash

#!/bin/sh
db_type="$(snapctl get db.type)"
db_url="$(snapctl get db.url)"
if [ "${db_type}" = "sqlite" ]
then
if [ -n "${db_url}" ]
then
echo "sqlite backend does not use db.url key"
exit 1
fi
elif [ "${db_type}" = "postgres" ]
then
if [ -z "${db_url}" ]
then
echo "postgres backend requires db.url to be set"
exit 1
fi
elif [ -n "${db_type}" ]
then
echo "Invalid db.type: " ${db_type}
exit 1
fi
base_url="$(snapctl get base-url)"
enabled="$(snapctl get enabled)"
if [ -n ${enabled} -a \( "${enabled}" != "true" -a "${enabled}" != "false" \) ]
then
echo "Invalid 'enabled' setting: ${enabled}. Valid values are 'true' or 'false'"
exit 1
fi
if [ -n ${base_url} -a \( -z "${enabled}" -o "${enabled}" = "false" \) ]
then
echo "All required configuration available."
echo "Plume can now be enabled by setting 'snap set plume enabled=true' and restarting the service \
with 'snap restart plume'"
fi
if [ "${enabled}" = "true" -a ! -e ${SNAP_COMMON}/initial-migrations-run ]
then
cd ${SNAP}
exec ./set-environment bin/plm migration run --path ${SNAP_DATA}
touch ${SNAP_COMMON}/initial-migrations-run
fi
exit 0