# Simple autossh and screen wrapper.
#
+# Parameters
BASENAME="`basename $0`"
DEST="$1"
COMMAND="$2"
+# Set screen title
+# http://stackoverflow.com/questions/899609/gnu-screen-run-script-that-sends-commands-to-the-screen-session-it-is-being-run
+function screen_title {
+ if [ -n "$STY" ]; then
+ screen -X title $1
+ fi
+}
+
+# Syntax check
if [ -z "$DEST" ]; then
exit 1
fi
+# Set default screen title
+screen_title $DEST
+
+# Dispatcher
if [ "$BASENAME" == "shells" ]; then
# Remote screen shell using autossh
if [ "$COMMAND" == "root" ]; then
wscreen $DEST
elif [ -z "$COMMAND" ] && [ "$DEST" == "root" ]; then
# Local root shell
+ screen_title root
sudo screen -x
elif [ "$DEST" == "local" ]; then
# Local screen shell
+ screen_title $COMMAND
wscreen $COMMAND
else
# Remote shell using autossh
autossh $DEST -t -- $COMMAND
fi
fi
+
+# Restore screen title
+screen_title terminal