Introduced package architecture in place of a single binary file. Reorganized exit...
authorMarco Zanon <info@marcozanon.com>
Wed, 27 Jun 2012 09:29:49 +0000 (09:29 +0000)
committerMarco Zanon <info@marcozanon.com>
Wed, 27 Jun 2012 09:29:49 +0000 (09:29 +0000)
build.sh
package/libcrypt.so.1 [new file with mode: 0644]
package/libjpeg.so.62 [new file with mode: 0644]
package/vncserver [new file with mode: 0644]
skeleton
vncserver [deleted file]

index c52a2d6579e63d056d81056a4b256733260a1d73..53f2fc49f636f7b1b0cf8b007c9e09a9476d4463 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -4,7 +4,11 @@
 ## Copyright (c) 2012 Marco Zanon <info@marcozanon.com>.
 ## 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 (file)
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 (file)
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 (file)
index 0000000..1a7e601
Binary files /dev/null and b/package/vncserver differ
index 65de65f4a8862b700df77f7f7b3e95d6ebfb1d01..4502bcc15f4d0d4a8fdbab8398fcd0aa59271450 100644 (file)
--- 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 (file)
index 1a7e601..0000000
Binary files a/vncserver and /dev/null differ