X-Git-Url: http://git.iain.cx/?p=profile.git;a=blobdiff_plain;f=opt%2Fbin%2Fsshcolourterm;h=e143a758f29380fa0b368bf41101593d5f428940;hp=c144a3b4c9770212e377d44cf0327908b5836023;hb=402aaf0823df191615b6027ae8289aa7bb78e919;hpb=819bb88d5a014a23150b8fd609d194e883958674 diff --git a/opt/bin/sshcolourterm b/opt/bin/sshcolourterm index c144a3b..e143a75 100755 --- a/opt/bin/sshcolourterm +++ b/opt/bin/sshcolourterm @@ -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+"$@"}