Use libre as a command to rule them all \o/

This commit is contained in:
pierreozoux 2016-11-26 16:30:39 +00:00
parent 0ef85986c5
commit db185a57ca
9 changed files with 72 additions and 40 deletions

View file

@ -63,17 +63,8 @@ Go to their respective page for more details.
cd /system/
git clone module
cd module
systemctl enable s@module
start
```
### To debug a module:
```
docker-compose ps
docker-compose logs
stop
restart
libre enable
libre start
```
## Applications
@ -83,19 +74,18 @@ restart
To install application `wordpress` on `example.org`, first make point example.org to your server IP, and then, just run:
```
provision -a github.com/indiehosters/wordpress -u example.org -s
libre provision -a github.com/indiehosters/wordpress -u example.org -s
```
Run `provision` for more details on the capabilities of the script.
Run `libre provision` for more details on the capabilities of the script.
### debug an application
## To debug a module or an application:
```
docker-compose ps
docker-compose logs
stop
start
restart
libre ps
libre logs -f --tail=100
libre stop
libre restart
```
## Contributing

View file

@ -1 +0,0 @@
systemctl_commands

View file

@ -1 +0,0 @@
systemctl_commands

63
utils/libre Executable file
View file

@ -0,0 +1,63 @@
#!/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
echo "Indiehosters";
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

View file

@ -1 +0,0 @@
systemctl_commands

View file

@ -1 +0,0 @@
systemctl_commands

View file

@ -1 +0,0 @@
systemctl_commands

View file

@ -1 +0,0 @@
systemctl_commands

View file

@ -1,15 +0,0 @@
#!/bin/bash
command=`basename "$0"`
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`
systemctl $command s@$module
elif [ "$first_level_path" == "data" ]; then
if [ "$second_level_path" == "domains" ]; then
domain=`pwd | cut -d'/' -f4`
systemctl $command u@$domain
fi
fi