From: Marco Zanon Date: Wed, 27 Jun 2012 09:29:49 +0000 (+0000) Subject: Introduced package architecture in place of a single binary file. Reorganized exit... X-Git-Tag: 0.3~1 X-Git-Url: https://gitweb.marcozanon.com/?a=commitdiff_plain;h=cde8928bfc4cd05daedf8caf98cf2357d18da1cc;p=single_click_remote_help Introduced package architecture in place of a single binary file. Reorganized exit codes. Added copyright line for included libraries. --- diff --git a/build.sh b/build.sh index c52a2d6..53f2fc4 100755 --- a/build.sh +++ b/build.sh @@ -4,7 +4,11 @@ ## Copyright (c) 2012 Marco Zanon . ## Released under GPLv2 license (see LICENSE for details). -cat skeleton vncserver > single_click_remote_help.sh +tar --directory package/ --exclude-vcs -czf package.tar.gz . + +cat skeleton package.tar.gz > single_click_remote_help.sh chmod 755 single_click_remote_help.sh +rm package.tar.gz + exit 0 diff --git a/package/libcrypt.so.1 b/package/libcrypt.so.1 new file mode 100644 index 0000000..e343a32 Binary files /dev/null and b/package/libcrypt.so.1 differ diff --git a/package/libjpeg.so.62 b/package/libjpeg.so.62 new file mode 100644 index 0000000..049b7d0 Binary files /dev/null and b/package/libjpeg.so.62 differ diff --git a/package/vncserver b/package/vncserver new file mode 100644 index 0000000..1a7e601 Binary files /dev/null and b/package/vncserver differ diff --git a/skeleton b/skeleton index 65de65f..4502bcc 100644 --- a/skeleton +++ b/skeleton @@ -6,15 +6,17 @@ ## ## Script based on http://www.linuxjournal.com/node/1005818. ## Vnc server is x11vnc by Karl J. Runge. +## Also deploying some libssl and libjpeg libraries. ## ## Exit codes: ## 0 Ok. -## 1 Gui scripting tool not found. -## 2 Temporary directory not created. -## 3 Vnc server binary not extracted. -## 4 Execution permission not set. -## 5 Vnc connection error. -## 6 Invalid command line argument. +## 1 Invalid command line argument. +## 2 Gui scripting tool not found. +## 3 Temporary directory not created. +## 4 Package not extracted. +## 5 Vnc server binary not extracted. +## 6 Execution permission not set. +## 7 Vnc connection error. ## 1. Define constants. SINGLE_CLICK_REMOTE_HELP_VERSION="0.x" @@ -36,7 +38,7 @@ if [ -n "$1" ]; then fi if [ -z "$M" ]; then echo "Invalid command line argument, exiting." - exit 6 + exit 1 fi if [ -x /usr/bin/zenity ]; then N=`eval $"zenity --title=\"$INPUT_BOX_TITLE\" --info --text=\"$M\""` @@ -44,7 +46,7 @@ if [ -n "$1" ]; then N=`eval $"kdialog --title \"$INPUT_BOX_TITLE\" --msgbox \"$M\""` else echo "Gui scripting tool not found, exiting." - exit 1 + exit 2 fi exit 0 fi @@ -65,7 +67,7 @@ elif [ -x /usr/bin/kdialog ]; then N=`eval $"kdialog --title \"$INPUT_BOX_TITLE\" --menu \"$INPUT_BOX_MESSAGE\" $VALUES"` else echo "Gui scripting tool not found, exiting." - exit 1 + exit 2 fi if [ -z $N ]; then echo "No answer provided, exiting." @@ -83,32 +85,42 @@ echo "Vnc server command arguments: $VNC_SERVER_COMMAND_ARGUMENTS." TEMPORARY_DIRECTORY=`mktemp -d /tmp/single_click_remote_help.XXXXXXXXXX` if [ "0" -ne "$?" ]; then echo "Temporary directory not created, exiting." - exit 2 + exit 3 fi echo "Temporary directory created: $TMP_DIR." -## 5. Extract Vnc server binary and make it executable. +## 5. Extract package files and make Vnc server binary executable. BINARY_LINES=`awk '/^__BINARY_BELOW__/ { print NR + 1; exit 0; }' $0` -tail -n+$BINARY_LINES $0 > $TEMPORARY_DIRECTORY/vncserver +tail -n+$BINARY_LINES $0 > $TEMPORARY_DIRECTORY/package.tar.gz +if [ "0" -ne "$?" ]; then + echo "Package not extracted, exiting." + exit 4 +fi +echo "Package extracted." +tar --directory $TEMPORARY_DIRECTORY -zxf $TEMPORARY_DIRECTORY/package.tar.gz if [ "0" -ne "$?" ]; then echo "Vnc server binary not extracted, exiting." - exit 3 + exit 5 fi echo "Vnc server binary extracted." chmod +x $TEMPORARY_DIRECTORY/vncserver if [ "0" -ne "$?" ]; then echo "Execution permission not set, exiting." - exit 4 + exit 6 fi echo "Execution permission set." ## 6. Run Vnc server. echo "Starting Vnc server." +OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH +export LD_LIBRARY_PATH=$TEMPORARY_DIRECTORY:$LD_LIBRARY_PATH $TEMPORARY_DIRECTORY/vncserver $VNC_SERVER_COMMAND_ARGUMENTS -afteraccept "$0 client_connected" -gone "$0 client_gone" if [ "0" -ne "$?" ]; then echo "Vnc connection error, exiting." - exit 5 + export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH + exit 7 fi +export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH ## 7. Remove temporary directory and terminate. rm -rf $TEMPORARY_DIRECTORY diff --git a/vncserver b/vncserver deleted file mode 100644 index 1a7e601..0000000 Binary files a/vncserver and /dev/null differ