62 lines
1.5 KiB
Bash
Executable file
62 lines
1.5 KiB
Bash
Executable file
#!/bin/bash -eu
|
|
|
|
|
|
function error_path {
|
|
>&2 echo "Error: you must be in either /data/domains/*/ or /system/*/ to execute these commands"
|
|
exit 1
|
|
}
|
|
|
|
function systemctl_param {
|
|
first_level_path=`pwd | cut -d'/' -f2`
|
|
second_level_path=`pwd | cut -d'/' -f3`
|
|
|
|
if [ "$first_level_path" == "system" ]; then
|
|
module=`pwd | cut -d'/' -f3`
|
|
if [ -n "$module" ]; then
|
|
echo s@$module
|
|
else
|
|
error_path
|
|
fi
|
|
elif [ "$first_level_path" == "data" ] && [ "$second_level_path" == "domains" ]; then
|
|
domain=`pwd | cut -d'/' -f4`
|
|
if [ -n "$domain" ]; then
|
|
echo u@$domain
|
|
else
|
|
error_path
|
|
fi
|
|
else
|
|
error_path
|
|
fi
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
start|status|enable|disable|restart|stop)
|
|
if [ -n "$(systemctl_param)" ]; then
|
|
echo "systemctl $1 $(systemctl_param)"
|
|
systemctl $1 $(systemctl_param)
|
|
fi;;
|
|
ps|exec|logs)
|
|
if [ -f ./env ]; then
|
|
env $(cat ./env | xargs) docker-compose $1 ${@:2}
|
|
else
|
|
docker-compose $1 ${@:2}
|
|
fi;;
|
|
update)
|
|
if [ "$(pwd)" == "/libre.sh" ]; then
|
|
git pull
|
|
cp /libre.sh/unit-files/* /etc/systemd/system && systemctl daemon-reload &&\
|
|
cp /libre.sh/utils/* /opt/bin/
|
|
elif [ -n "$(systemctl_param)" ]; then
|
|
git pull
|
|
docker-compose pull
|
|
libre restart
|
|
fi;;
|
|
provision)
|
|
provision ${@:2};;
|
|
*)
|
|
echo "Usage:"
|
|
echo " - start|status|enable|disable|restart|stop: command sent to systemctl."
|
|
echo " - ps|exec|logs: command sent to docker compose."
|
|
echo " - update: to update the current folder."
|
|
esac
|