X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=appimage%2Fctdlvisor.c;h=f14b67c59668f3638955a33aad576cc754bbe62c;hb=424aab92fd2d03060878e0a62aac870b716aa64a;hp=6784f2cc5d042998ca55eb2f8068dcbca87be656;hpb=726b17052194381cb213317808ccba1f41194285;p=citadel.git diff --git a/appimage/ctdlvisor.c b/appimage/ctdlvisor.c index 6784f2cc5..f14b67c59 100644 --- a/appimage/ctdlvisor.c +++ b/appimage/ctdlvisor.c @@ -4,16 +4,9 @@ // // 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. - +// This program is open source software. Use, duplication, or disclosure +// is subject to the terms of the GNU General Public License, version 3. +// The program is distributed without any warranty, expressed or implied. #include #include @@ -194,6 +187,31 @@ void main_loop(void) { } +void install_client_link(void) { + + FILE *fp; + char path_to_link[PATH_MAX]; + snprintf(path_to_link, sizeof path_to_link, "%s/citadel", getenv("CTDL_DIR")); + fp = fopen(path_to_link, "w"); + if (!fp) { + fprintf(stderr, "%s\n", strerror(errno)); + return; + } + + fprintf(fp, "#!/bin/bash\n" + "export APPDIR=%s\n" + "export LD_LIBRARY_PATH=${APPDIR}/usr/bin:$LD_LIBRARY_PATH\n" + "export PATH=${APPDIR}/usr/bin:$PATH\n" + "exec citadel\n" + , + getenv("APPDIR") + ); + + fchmod(fileno(fp), 0755); + fclose(fp); +} + + int main(int argc, char **argv) { int a; int migrate_mode = 0; @@ -244,7 +262,7 @@ int main(int argc, char **argv) { fprintf(stderr, "ctdlvisor: waiting a moment for citserver to initialize...\n"); sleep(5); char bin[1024]; - sprintf(bin, "%s/usr/local/citadel/ctdlmigrate", getenv("APPDIR")); + sprintf(bin, "%s/usr/local/citadel/ctdlmigrate -h %s", getenv("APPDIR"), getenv("CTDL_DIR")); system(bin); kill(citserver_pid, SIGTERM); } @@ -255,9 +273,11 @@ int main(int argc, char **argv) { signal(SIGINT, signal_handler); signal(SIGQUIT, signal_handler); - citserver_pid = start_citadel(); - webcit_pid = start_webcit(); - webcits_pid = start_webcits(); + citserver_pid = start_citadel(); // start Citadel Server + webcit_pid = start_webcit(); // start WebCit HTTP + webcits_pid = start_webcits(); // start WebCit HTTPS + + install_client_link(); main_loop(); }