X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=appimage%2Fcitadel.AppDir%2FAppRun;h=860b36b37eb20f878a1fdd9160447abe7bcb788b;hb=a5b89af01e00b8e95937ac60502cff4a34a710de;hp=25205607933ea3626ff1cffa600be0fe5405160b;hpb=a112ae0472a232be5484c7a9aafc5a880a361c34;p=citadel.git diff --git a/appimage/citadel.AppDir/AppRun b/appimage/citadel.AppDir/AppRun index 252056079..860b36b37 100755 --- a/appimage/citadel.AppDir/AppRun +++ b/appimage/citadel.AppDir/AppRun @@ -1,18 +1,18 @@ #!/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. +# 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 @@ -23,7 +23,7 @@ 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' + echo 'command must be one of: run, test, install, database_cleanup, migrate' exit 2 } @@ -31,15 +31,19 @@ usage() { # Permanently install the Citadel AppImage to this system installation() { - clear - 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 # 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 Installation cannot proceed while Citadel is running. + 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 @@ -51,13 +55,25 @@ installation() { export LD_LIBRARY_PATH=$APPDIR/usr/lib export PATH=$APPDIR/usr/bin $APPDIR/usr/local/citadel/citserver -c || { - echo Compatibility failed. + 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 ] @@ -90,7 +106,7 @@ installation() { 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 @@ -105,13 +121,19 @@ installation() { 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... ( @@ -134,7 +156,7 @@ installation() { ) >/etc/systemd/system/citadel.service || { echo Installation has failed with error code $? . exit 5 - } + } | exit 5 echo OK echo @@ -142,7 +164,7 @@ installation() { systemctl enable citadel || { echo Installation has failed with error code $? . exit 6 - } + } | exit 6 echo OK echo @@ -150,12 +172,21 @@ installation() { systemctl start citadel || { echo Installation has failed with error code $? . exit 6 - } + } || exit 6 echo OK echo - echo Installation has completed. + # 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 } @@ -194,6 +225,30 @@ case ${1} in 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