From 424aab92fd2d03060878e0a62aac870b716aa64a Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Fri, 16 Jul 2021 18:17:43 -0400 Subject: [PATCH] This is it, I figured out how to create a client link --- appimage/citadel.AppDir/run-client.sh | 13 ----------- appimage/ctdlvisor.c | 33 ++++++++++++++++++++++++--- 2 files changed, 30 insertions(+), 16 deletions(-) delete mode 100755 appimage/citadel.AppDir/run-client.sh diff --git a/appimage/citadel.AppDir/run-client.sh b/appimage/citadel.AppDir/run-client.sh deleted file mode 100755 index ff9483844..000000000 --- a/appimage/citadel.AppDir/run-client.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -# This script attempts to find the Citadel Server running in an AppImage on -# the same host, and connects to the text mode client. - -CLIENT_PATH=`ls /tmp/.*/usr/bin/citadel || exit 1` || exit 1 -CLIENT_DIR=`dirname ${CLIENT_PATH}` -export PATH=${CLIENT_DIR}:$PATH -export APPDIR=`echo ${CLIENT_DIR} | sed s/'\/usr\/bin'//g` -export LD_LIBRARY_PATH=${APPDIR}/usr/lib:$LD_LIBRARY_PATH -export CTDL_DIR=$(dirname $(readlink -f $0)) -ldd $CLIENT_PATH -exec $CLIENT_PATH diff --git a/appimage/ctdlvisor.c b/appimage/ctdlvisor.c index 3c7be88cc..f14b67c59 100644 --- a/appimage/ctdlvisor.c +++ b/appimage/ctdlvisor.c @@ -187,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; @@ -248,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(); } -- 2.30.2