Use libre as a command to rule them all \o/
This commit is contained in:
parent
0ef85986c5
commit
db185a57ca
9 changed files with 72 additions and 40 deletions
28
README.md
28
README.md
|
@ -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
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
systemctl_commands
|
|
@ -1 +0,0 @@
|
|||
systemctl_commands
|
63
utils/libre
Executable file
63
utils/libre
Executable 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
|
|
@ -1 +0,0 @@
|
|||
systemctl_commands
|
|
@ -1 +0,0 @@
|
|||
systemctl_commands
|
|
@ -1 +0,0 @@
|
|||
systemctl_commands
|
|
@ -1 +0,0 @@
|
|||
systemctl_commands
|
|
@ -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
|
Loading…
Reference in a new issue