Added -t flag to sshcolourterm.
[profile.git] / opt / bin / sshcolourterm
index c144a3b..e143a75 100755 (executable)
@@ -2,22 +2,43 @@
 
 SSHCOLOURS=~/.ssh/colours
 
+while getopts ":t:" opt; do
+  case "$opt" in
+    t) title="$OPTARG";;
+  esac
+done
+shift $((OPTIND-1))
+
+[ -z "$title" ] && title="$1"
+
 fqdn=${1##*@}
 colour=
 
 # Get colour by regex.
-for path in $(ls "$SSHCOLOURS" | lensort -r); do
-  re=${path##*/}
-  echo "$fqdn" | grep -qs "$re" || continue
-  colour=$(readlink "$SSHCOLOURS/$path")
-  break
-done
+if [ -z "$colour" ]; then
+  for path in $(ls "$SSHCOLOURS" | lensort -r); do
+    re=${path##*/}
+    echo "$fqdn" | grep -qs "$re" || continue
+    colour=$(readlink "$SSHCOLOURS/$path")
+    break
+  done
+fi
+
+# Get colour by netgroup.
+if [ -z "$colour" ]; then
+  for netgroup in $(ls "$SSHCOLOURS" | grep ^\@); do
+    if netgroups $netgroup ${fqdn%%.*} &>/dev/null; then
+      colour=$(readlink "$SSHCOLOURS/$netgroup")
+      break
+    fi
+  done
+fi
 
 if [ ! -z "$colour" ]; then
   colour=${colour##*/}
   colour=${colour##*:}
-  echo -e "\033]49;$colour\007"
-  clear
 fi
 
-exec ${SSHTERM_SSH:-ssh} ${1+"$@"}
+[ -n "$colour" ] && colour="-bg $colour"
+exec ${SSHTERM:-xterm} ${SSHTERM_TITLE:--title} "$title" \
+     $colour ${SSHTERM_EXEC:--e} ${SSHTERM_SSH:-ssh} ${1+"$@"}