]> gitweb.fluxo.info Git - scripts.git/commitdiff
Adds a vnc wrapper
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 7 Jul 2018 04:15:42 +0000 (01:15 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 7 Jul 2018 04:15:42 +0000 (01:15 -0300)
vnc [new file with mode: 0755]

diff --git a/vnc b/vnc
new file mode 100755 (executable)
index 0000000..b29136d
--- /dev/null
+++ b/vnc
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+# Wrapper around ssh and vncviewer
+#
+
+# Parameters
+BASENAME="`basename $0`"
+SERVER="$1"
+
+# Check
+if [ -x "$SERVER" ]; then
+  echo "usage: $BASENAME <server>"
+  exit 1
+fi
+
+# Check if vncserver is running in the remote server and start otherwise
+ssh $SERVER <<EOF
+  HOSTNAME="\$(cat /etc/hostname)"
+
+  if [ -e "\$HOME/.vnc/\$HOSTNAME:1.pid" ]; then
+    PID="\$(cat \$HOME/.vnc/\$HOSTNAME:1.pid)"
+
+    if ! ps \$PID &> /dev/null; then
+      /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1
+    fi
+  else
+    /usr/bin/vncserver -alwaysshared -dpi 96 -localhost :1
+  fi
+EOF
+
+# See http://www.g-loaded.eu/2006/11/24/auto-closing-ssh-tunnels/
+# Optional SSH compression
+#ssh -C -c blowfish -f -L 5901:127.0.0.1:5901 $SERVER sleep 10
+ssh -f -L 5901:127.0.0.1:5901 $SERVER sleep 10
+
+# Run VNC client
+# Copy $SERVER:~/.vnc/passwd into $HOME/.vnc/$SERVER.passwd for passwordless login
+if [ -e "$HOME/.vnc/$SERVER.passwd" ]; then
+  vncviewer -passwd $HOME/.vnc/$SERVER.passwd localhost:5901
+else
+  vncviewer localhost:5901
+fi