]> 105106.c2e0p.group Git - dotfiles.git/commitdiff
Add ssh-helper functions.
authorJer Noble <[email protected]>
Thu, 26 Apr 2012 15:57:52 +0000 (08:57 -0700)
committerJer Noble <[email protected]>
Thu, 26 Apr 2012 15:57:52 +0000 (08:57 -0700)
.aliases

index 163f8424ee2dff04d5ed64e3ed1d30f2ff738179..77c68f09d11dbf89f03ff1eaa570de98adcaf22b 100755 (executable)
--- a/.aliases
+++ b/.aliases
@@ -64,3 +64,35 @@ function ssh-learn() {
     ssh-keyscan -t rsa $1 >> ~/.ssh/known_hosts
 }
 
     ssh-keyscan -t rsa $1 >> ~/.ssh/known_hosts
 }
 
+function _ssh_complete() {
+    COMPREPLY=()
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    opts=$( grep -o '^[^, ]\+' ~/.ssh/known_hosts )
+    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+    return 0
+}
+complete -F _ssh_complete ssh
+
+function _ssh_screen () {
+    DISCONNECT=""
+    RECONNECT="-R"
+    HOST=$1
+    while [ "$2" != "" ]; do
+        case $2 in
+            -d | --disconnect )
+                DISCONNECT="-D"
+                ;;
+            * )
+                echo "Usage: $HOST [-d | --discconnect]"
+                return 1
+                ;;
+        esac
+        shift
+    done
+
+    ssh -t $HOST screen $DISCONNECT $RECONNECT
+}
+
+for host in ssh_hosts=$( grep '^Host[ ][^*]' ~/.ssh/config | cut -c 6- ); do
+    alias "$host"="_ssh_screen $host $@"
+done