Browse Source

option to add daemon

Bob Mottram 7 years ago
parent
commit
2ba896eaa8
1 changed files with 39 additions and 5 deletions
  1. 39
    5
      src/freedombone-template

+ 39
- 5
src/freedombone-template View File

40
 app_node=
40
 app_node=
41
 app_onion_only=
41
 app_onion_only=
42
 app_port=''
42
 app_port=''
43
+app_daemon=
43
 your_name=''
44
 your_name=''
44
 your_email=''
45
 your_email=''
45
 SHOW_ON_ABOUT=1
46
 SHOW_ON_ABOUT=1
62
     echo $'     --node [yes|no]                   Is this a nodejs app?'
63
     echo $'     --node [yes|no]                   Is this a nodejs app?'
63
     echo $'  -o --onion [yes|no]                  Is this app only available on an onion address?'
64
     echo $'  -o --onion [yes|no]                  Is this app only available on an onion address?'
64
     echo $'  -p --php [yes|no]                    Is this a PHP app?'
65
     echo $'  -p --php [yes|no]                    Is this a PHP app?'
66
+    echo $'  -s --daemon [yes|no]                 Add a daemon'
65
     echo $'  -d --database [mariadb|postgresql]   Type of database'
67
     echo $'  -d --database [mariadb|postgresql]   Type of database'
66
     echo ''
68
     echo ''
67
     exit 0
69
     exit 0
110
             shift
112
             shift
111
             app_node="$1"
113
             app_node="$1"
112
             ;;
114
             ;;
115
+        -s|--daemon|--systemd)
116
+            shift
117
+            if [[ "$1" == 'yes' ]]; then
118
+                app_daemon=1
119
+            fi
120
+            ;;
113
         -o|--onion)
121
         -o|--onion)
114
             shift
122
             shift
115
             if [[ "$1" == 'yes' ]]; then
123
             if [[ "$1" == 'yes' ]]; then
484
 echo "    nginx_dissite \$${app_name_upper}_DOMAIN_NAME"
492
 echo "    nginx_dissite \$${app_name_upper}_DOMAIN_NAME"
485
 echo "    remove_certs \$${app_name_upper}_DOMAIN_NAME"
493
 echo "    remove_certs \$${app_name_upper}_DOMAIN_NAME"
486
 echo ''
494
 echo ''
487
-echo "    if [ -f /etc/systemd/system/${app_name}.service ]; then"
488
-echo "        systemctl stop ${app_name}"
489
-echo "        systemctl disable ${app_name}"
490
-echo "        rm /etc/systemd/system/${app_name}.service"
491
-echo '    fi'
495
+if [ $app_daemon ]; then
496
+    echo "    if [ -f /etc/systemd/system/${app_name}.service ]; then"
497
+    echo "        systemctl stop ${app_name}"
498
+    echo "        systemctl disable ${app_name}"
499
+    echo "        rm /etc/systemd/system/${app_name}.service"
500
+    echo '    fi'
501
+    echo "    userdel -r ${app_name}"
502
+fi
492
 echo ''
503
 echo ''
493
 echo "    if [ -d /var/www/\$${app_name_upper}_DOMAIN_NAME ]; then"
504
 echo "    if [ -d /var/www/\$${app_name_upper}_DOMAIN_NAME ]; then"
494
 echo "        rm -rf /var/www/\$${app_name_upper}_DOMAIN_NAME"
505
 echo "        rm -rf /var/www/\$${app_name_upper}_DOMAIN_NAME"
660
     echo ''
671
     echo ''
661
     echo '    configure_php'
672
     echo '    configure_php'
662
 fi
673
 fi
674
+if [ $app_daemon ]; then
675
+    echo ''
676
+    echo "    useradd -d TODO_PATH_TO_INSTALL -s /bin/false ${app_name}"
677
+    echo ''
678
+    echo "    echo '[Unit]' > /etc/systemd/system/${app_name}.service"
679
+    echo "    echo 'Description=${app_name}' >> /etc/systemd/system/${app_name}.service"
680
+    echo "    echo 'After=syslog.target' >> /etc/systemd/system/${app_name}.service"
681
+    echo "    echo 'After=network.target' >> /etc/systemd/system/${app_name}.service"
682
+    echo "    echo '' >> /etc/systemd/system/${app_name}.service"
683
+    echo "    echo '[Service]' >> /etc/systemd/system/${app_name}.service"
684
+    echo "    echo 'Type=simple' >> /etc/systemd/system/${app_name}.service"
685
+    echo "    echo 'User=${app_name}' >> /etc/systemd/system/${app_name}.service"
686
+    echo "    echo 'Group=${app_name}' >> /etc/systemd/system/${app_name}.service"
687
+    echo "    echo 'WorkingDirectory=TODO' >> /etc/systemd/system/${app_name}.service"
688
+    echo "    echo 'ExecStart=TODO' >> /etc/systemd/system/${app_name}.service"
689
+    echo "    echo 'Restart=always' >> /etc/systemd/system/${app_name}.service"
690
+    echo "    echo 'Environment=\"USER=${app_name}\"' >> /etc/systemd/system/${app_name}.service"
691
+    echo "    echo '' >> /etc/systemd/system/${app_name}.service"
692
+    echo "    echo '[Install]' >> /etc/systemd/system/${app_name}.service"
693
+    echo "    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/${app_name}.service"
694
+    echo "    systemctl enable ${app_name}"
695
+    echo "    systemctl start ${app_name}"
696
+fi
663
 echo ''
697
 echo ''
664
 echo "    create_site_certificate \$${app_name_upper}_DOMAIN_NAME 'yes'"
698
 echo "    create_site_certificate \$${app_name_upper}_DOMAIN_NAME 'yes'"
665
 echo ''
699
 echo ''