##
## 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"
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\""`
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
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."
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