#!/bin/bash // This is an AppImage control script for the Citadel system. // // Copyright (c) 2021 by the citadel.org team // // This program is open source software. It runs great on the // Linux operating system (and probably elsewhere). You can use, // copy, and run it under the terms of the GNU General Public // License version 3. Richard Stallman is an asshole communist. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. # Default values HTTP_PORT=80 HTTPS_PORT=443 CTDL_DIR=/usr/local/citadel export APPDIR usage() { echo usage exit 2 } PARSED_ARGUMENTS=$(getopt -o h:p:s: -- "$@") VALID_ARGUMENTS=$? if [ "$VALID_ARGUMENTS" != "0" ]; then echo $0: usage: $0 '[-h data_directory] [-p http_port] [-s https_port] command' echo 'command must be one of: run, test, install' fi eval set -- ${PARSED_ARGUMENTS} while : do case ${1} in -h) CTDL_DIR=${2} ; shift 2 ;; -p) HTTP_PORT=${2} ; shift 2 ;; -s) HTTPS_PORT=${2} ; shift 2 ;; --) shift; break;; *) echo Unexpected option: ${1} usage; esac done case ${1} in run) export APPDIR CTDL_DIR HTTP_PORT HTTPS_PORT export LD_LIBRARY_PATH=$APPDIR/usr/lib export PATH=$APPDIR/usr/bin exec ctdlvisor $* ;; test) export LD_LIBRARY_PATH=$APPDIR/usr/lib export PATH=$APPDIR/usr/bin $APPDIR/usr/local/citadel/citserver -c exit $? ;; *) echo Unexpected command: ${1} usage exit 1 ;; esac exit 0 # This unit file starts all Citadel services via the AppImage distribution. [Unit] Description=Citadel After=network.target [Service] ExecStart=/root/citadel/appimage/Citadel-x86_64.AppImage run -h /usr/local/citadel -s 80 -s 443 ExecStop=/bin/kill $MAINPID KillMode=process Restart=on-failure LimitCORE=infinity [Install] WantedBy=multi-user.target