X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=appimage%2Fcitadel.AppDir%2FAppRun;fp=appimage%2Fcitadel.AppDir%2FAppRun;h=0000000000000000000000000000000000000000;hb=b4fbfa534369c2cc497031b715430bcd5ceb1348;hp=860b36b37eb20f878a1fdd9160447abe7bcb788b;hpb=3e3e503f9464c61bf8cefcb0551d42123db9fbf4;p=citadel.git diff --git a/appimage/citadel.AppDir/AppRun b/appimage/citadel.AppDir/AppRun deleted file mode 100755 index 860b36b37..000000000 --- a/appimage/citadel.AppDir/AppRun +++ /dev/null @@ -1,258 +0,0 @@ -#!/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. -# -# 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 -ulimit -c unlimited - -usage() { - echo ${APPIMAGE}: usage: ${APPIMAGE} '[-h data_directory] [-p http_port] [-s https_port] command' - echo 'command must be one of: run, test, install, database_cleanup, migrate' - exit 2 -} - - -# Permanently install the Citadel AppImage to this system -installation() { - - # Clear the screen and draw the banner - echo -e '\033[2J\033[H\033[44m\033[37m\033[K\033[0m' - echo -e '\033[44m\033[37m\033[1m Citadel installation\033[K\033[0m' - echo -e '\033[44m\033[37m \033[K\033[0m' - echo - - # First ... check to make sure Citadel isn't already running. - echo Checking to make sure Citadel is not already running... - if ps ax | grep citserver | grep -v grep ; then - echo - echo -e '\033[31m\033[1mInstallation cannot proceed while Citadel is running.\033[0m' - echo Stop your services and try again. - echo - exit 1 - fi - echo OK - echo - - # Check compatibility - echo Checking this AppImage compatibility with your host system... - ( - export LD_LIBRARY_PATH=$APPDIR/usr/lib - export PATH=$APPDIR/usr/bin - $APPDIR/usr/local/citadel/citserver -c || { - echo - echo -e '\033[31m\033[1mCompatibility failed.\033[0m' - echo 'This AppImage is not compatible with your system.' - echo 'If you are attempting to run it on a compatible platform, please make sure you' - echo 'have all of the latest updates and patches applied. Otherwise, you may have' - echo 'better luck with the Easy Install method.' - echo '' - exit 2 - } - ) || exit 2 - echo OK - echo - - # Clear the screen and draw the banner - echo -e '\033[2J\033[H\033[44m\033[37m\033[K\033[0m' - echo -e '\033[44m\033[37m\033[1m Citadel installation\033[K\033[0m' - echo -e '\033[44m\033[37m \033[K\033[0m' - echo - - # Locate the Citadel run directory - confirmed=0 - while [ ${confirmed} == 0 ] - do - echo -n In what directory will you run Citadel\? \[${CTDL_DIR}\]\ - read dir - if [ "${dir}" == "" ] - then - dir=${CTDL_DIR} - fi - if [ ! -d ${dir} ] - then - echo -n ${dir} does not exist. Do you want to create it\?\ - read yesno - if [ `echo ${yesno} | cut -c1` == 'y' ] - then - mkdir ${dir} - fi - fi - if [ -d ${dir} ] - then - confirmed=1 - fi - done - CTDL_DIR=${dir} - - # Check systemd - echo Checking this operating system for systemd... - systemctl --version >/dev/null 2>&1 || { - echo Automatic installation is only supported with systemd. - echo You can still run Citadel but you will need to start it some other way. - exit 3 - } | exit 3 - echo OK - echo - - # Remove old unit files - echo Checking for old startup files. - ls /etc/systemd/system/citadel* 2>/dev/null && { - rm -i /etc/systemd/system/citadel* - } - ls /etc/systemd/system/webcit* 2>/dev/null && { - rm -i /etc/systemd/system/webcit* - } - echo OK - echo - - # Clear the screen and draw the banner - echo -e '\033[2J\033[H\033[44m\033[37m\033[K\033[0m' - echo -e '\033[44m\033[37m\033[1m Citadel installation\033[K\033[0m' - echo -e '\033[44m\033[37m \033[K\033[0m' - echo - - echo Ready to install ${APPIMAGE} in ${CTDL_DIR} - echo Copying the AppImage... - rm -f ${CTDL_DIR}/citadel.appimage 2>/dev/null - cp ${APPIMAGE} ${CTDL_DIR}/citadel.appimage || { - echo Installation has failed with error code $? . - exit 4 - } | exit 4 - - echo Creating the systemd unit file... - ( - echo '# This unit file starts all Citadel services via the AppImage distribution.' - echo '# Automatically installed on' `date` - echo '' - echo '[Unit]' - echo 'Description=Citadel' - echo 'After=network.target' - echo '' - echo '[Service]' - echo 'ExecStart='${CTDL_DIR}'/citadel.appimage run -h '${CTDL_DIR}' -p '${HTTP_PORT}' -s '${HTTPS_PORT} - echo 'ExecStop=/bin/kill $MAINPID' - echo 'KillMode=process' - echo 'Restart=on-failure' - echo 'LimitCORE=infinity' - echo '' - echo '[Install]' - echo 'WantedBy=multi-user.target' - ) >/etc/systemd/system/citadel.service || { - echo Installation has failed with error code $? . - exit 5 - } | exit 5 - echo OK - echo - - echo Enabling the service... - systemctl enable citadel || { - echo Installation has failed with error code $? . - exit 6 - } | exit 6 - echo OK - echo - - echo Starting the service... - systemctl start citadel || { - echo Installation has failed with error code $? . - exit 6 - } || exit 6 - echo OK - echo - - # Clear the screen and draw the banner - echo -e '\033[2J\033[H\033[44m\033[37m\033[K\033[0m' - echo -e '\033[44m\033[37m\033[1m Citadel installation\033[K\033[0m' - echo -e '\033[44m\033[37m \033[K\033[0m' - echo - - echo -e '\033[32m\033[1mInstallation has completed.\033[0m' - echo Please continue by browsing to http://`hostname`:${HTTP_PORT} - echo - echo -e 'If this is a new installation, the default administrator' - echo -e 'will be named \033[7madmin\033[0m with password \033[7mcitadel\033[0m.' - exit -} - - -PARSED_ARGUMENTS=$(getopt -o h:p:s: -- "$@") -VALID_ARGUMENTS=$? -if [ "$VALID_ARGUMENTS" != "0" ]; then - usage -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 - exec $APPDIR/usr/local/citadel/citserver -c - ;; - install) - installation - ;; - database_cleanup) - export LD_LIBRARY_PATH=$APPDIR/usr/lib - export PATH=$APPDIR/usr/bin:$PATH - exec $APPDIR/usr/local/citadel/database_cleanup.sh -h $CTDL_DIR - ;; - migrate) - export APPDIR CTDL_DIR HTTP_PORT HTTPS_PORT - export LD_LIBRARY_PATH=$APPDIR/usr/lib - export PATH=$APPDIR/usr/bin - exec ctdlvisor -m - ;; - mount) - echo This mode of operation mounts the AppImage but does not run anything. - echo -n Kill it when you are finished... - while true - do - sleep 1 - done - ;; - debug) - export LD_LIBRARY_PATH=$APPDIR/usr/lib - export PATH=$APPDIR/usr/bin:$PATH - exec $APPDIR/usr/local/citadel/citserver -x9 -h $CTDL_DIR - ;; - *) - echo Unexpected command: ${1} - usage - exit 1 - ;; -esac -exit 0