2016-11-26 16:30:39 +00:00
|
|
|
#!/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;;
|
2016-11-26 16:45:53 +00:00
|
|
|
journal)
|
|
|
|
if [ -n "$(systemctl_param)" ]; then
|
|
|
|
journalctl -fu $(systemctl_param)
|
|
|
|
fi;;
|
2016-11-26 16:30:39 +00:00
|
|
|
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
|
2016-11-26 16:47:22 +00:00
|
|
|
cp /libre.sh/unit-files/* /etc/systemd/system && systemctl daemon-reload
|
2016-11-26 16:30:39 +00:00
|
|
|
cp /libre.sh/utils/* /opt/bin/
|
|
|
|
elif [ -n "$(systemctl_param)" ]; then
|
|
|
|
git pull
|
|
|
|
docker-compose pull
|
2016-12-23 10:13:40 +00:00
|
|
|
docker-compose build
|
2016-12-23 10:31:55 +00:00
|
|
|
/opt/bin/libre restart
|
2016-11-26 16:30:39 +00:00
|
|
|
fi;;
|
|
|
|
provision)
|
|
|
|
provision ${@:2};;
|
2017-03-28 23:40:38 +00:00
|
|
|
stats)
|
|
|
|
docker stats $(docker ps|grep -v "NAMES"|awk '{ print $NF }'|tr "\n" " ");;
|
2016-11-26 16:30:39 +00:00
|
|
|
*)
|
|
|
|
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."
|
2017-03-28 23:40:38 +00:00
|
|
|
echo " - stats: show docker stats with names."
|
2016-11-26 16:30:39 +00:00
|
|
|
esac
|