quality-time.git

commit 06f128bf8c852496acdc569873d000c388370801

Author: Paolo Lulli <paolo@lulli.net>

Service create/start/stop/log wrapper

 sqt | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


diff --git a/sqt b/sqt
new file mode 100755
index 0000000000000000000000000000000000000000..513fc4830cf1195c412350967693dcc61292576a
--- /dev/null
+++ b/sqt
@@ -0,0 +1,156 @@
+#! /bin/bash
+
+SYSDIR=$HOME/.config/systemd/user
+red=`tput setaf 1`
+green=`tput setaf 2`
+reset=`tput sgr0`
+
+function usage(){
+    echo "$(basename $0) <args>"
+    echo ""
+    echo "$(basename $0) -c|--create <service>  : Creates a new service <service>.service"
+    echo "$(basename $0) -l|--log <service>     : Get logs for <service>.service"
+    echo "$(basename $0) -x|--status <service>  : Status for <service>.service"
+    echo "$(basename $0) -s|--start <service>   : Starts <service>.service"
+    echo "$(basename $0) -S|--stop <service>    : Stops <service>.service"
+    echo "$(basename $0) -e|--enable <service>  : Enables <service>.service"
+    echo "$(basename $0) -d|--disable <service> : Disables <service>.service"
+}
+
+option=$1
+params=${@:2}
+
+function service_log()
+{
+    service="$1"
+    cmd="journalctl --user -u ${service}.service"
+    echo "Cmd: [${green}${cmd}${reset}]"
+
+    eval "${cmd}"
+}
+
+function service_status()
+{
+    service="$1"
+    cmd="systemctl --user status ${service}.service"
+    echo "Cmd: [${green}${cmd}${reset}]"
+
+    eval "${cmd}"
+}
+
+function service_start()
+{
+    service="$1"
+    cmd="systemctl --user start ${service}.service"
+    echo "Cmd: [${green}${cmd}${reset}]"
+
+    eval "${cmd}"
+}
+
+function service_stop()
+{
+    service="$1"
+    cmd="systemctl --user stop ${service}.service"
+    echo "Cmd: [${green}${cmd}${reset}]"
+
+    eval "${cmd}"
+}
+
+function service_enable()
+{
+    service="$1"
+    cmd="systemctl --user enable ${service}.service"
+    echo "Cmd: [${green}${cmd}${reset}]"
+
+    eval "${cmd}"
+}
+
+function service_disable()
+{
+    service="$1"
+    cmd="systemctl --user disable ${service}.service"
+    echo "Cmd: [${green}${cmd}${reset}]"
+
+    eval "${cmd}"
+}
+
+function service_create()
+{
+    service="$1"
+    unit_name=${SYSDIR}/${service}.service
+    script_name=${HOME}/bin/service-${service}.sh
+
+    test -f ${unit_name} && echo "File exists: ${unit_name}"
+    test -f ${unit_name} && exit 1
+
+    cat<<__EOT__>${unit_name}
+
+   [Unit]
+
+   Description=Run ${service}
+   DefaultDependencies=no
+   After=network.target
+
+   [Service]
+
+   Type=simple
+   ExecStart=%h/bin/service-${service}.sh
+   TimeoutStartSec=0
+   Restart=on-failure
+   RemainAfterExit=yes
+   #StandardOutput=file:%h/log_file
+
+   [Install]
+
+   WantedBy=default.target
+__EOT__
+
+    echo "Created unit: [${unit_name}]"
+
+    test -f ${script_name} && exit 0
+    cat<<__EOT__>${script_name}
+   #! /bin/bash
+   #
+   echo "START ${service} CALLED"
+
+   # Edit here start of  ${service}"
+
+__EOT__
+
+    chmod 755 ${script_name}
+    eval ${cmd}
+}
+
+
+if [ "$option" = "-c" ] || [ "$option" = "--create" ]; then
+    service_create "${params}"
+    exit 0
+fi
+
+if [ "$option" = "-l" ] || [ "$option" = "--log" ]; then
+    service_log "${params}"
+    exit 0
+fi
+if [ "$option" = "-x" ] || [ "$option" = "--status" ]; then
+    service_status "${params}"
+    exit 0
+fi
+if [ "$option" = "-s" ] || [ "$option" = "--start" ]; then
+    service_start "${params}"
+    exit 0
+fi
+if [ "$option" = "-S" ] || [ "$option" = "--stop" ]; then
+    service_stop "${params}"
+    exit 0
+fi
+
+if [ "$option" = "-e" ] || [ "$option" = "--enable" ]; then
+    service_enable "${params}"
+    exit 0
+fi
+if [ "$option" = "-d" ] || [ "$option" = "--disable" ]; then
+    service_disable "${params}"
+    exit 0
+fi
+
+usage;