]> git.phdru.name Git - dotfiles.git/blobdiff - .shellrc
.profile: comment out MOTD handling
[dotfiles.git] / .shellrc
index b776b4ba2cee39b26e06dc353f1273e6082af9fa..130281854e9d4421e36b12bb425c05ae769e547e 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -9,11 +9,11 @@
 # If not running interactively, don't do anything
 case $- in
     *i*) ;;
-      *) return;;
+      *) return ;;
 esac
 
 # Stop if non-interactive shell
-[ -z "$PS1" ] && return
+[ -z "$PS1" ] && return
 
 if test -n "$BASH_VERSION"; then
    # append to the history file, don't overwrite it
@@ -68,7 +68,6 @@ if test -n "$BASH_VERSION"; then
    [ "`type -t mc`" = alias ] && unalias mc
 
    back() { cd - "$@"; }
-   clo() { clear; logout; }
    functions() { typeset -f "$@"; }
    j() { jobs; }
 
@@ -112,45 +111,38 @@ if test -n "$BASH_VERSION"; then
          ! has_completion $cmd && complete -A hostname $cmd
    done
 
-   if has_completion wget; then
-      _wget_completion_loader() {
-         _completion_loader wget
-         complete -F _wget wget-m wget-wrapper ww
-         unset _wget_completion_loader
-         return 124
-      }
-      complete -F _wget_completion_loader wget-m wget-wrapper ww
-   fi
-
    for cmd in distribute ftp lftp r rsync \
       s scp ssh smbclient tcpdump tshark wireshark; do
          ! has_completion $cmd && complete -o default -A hostname $cmd;
    done
 
-   if has_completion rsync; then
-      _rsync_completion_loader() {
-         _completion_loader rsync
-         complete -F _rsync r
-         unset _rsync_completion_loader
-         return 124
-      }
-      complete -F _rsync_completion_loader r
-   fi
+   delegate_completion() {
+      local prog completion_f programs
+      prog="$1"
+      completion_f="$2"
+      shift; shift
+      programs="$@"
+      if has_completion "$prog"; then
+         eval "_${prog}_completion_loader() {
+            _completion_loader $prog
+            complete -F $completion_f $programs
+            unset _${prog}_completion_loader
+            return 124
+         }"
+         complete -F _"$prog"_completion_loader $programs
+      fi
+   }
 
-   if has_completion ssh; then
-      _ssh_completion_loader() {
-         _completion_loader ssh
-         complete -F _ssh s
-         unset _ssh_completion_loader
-         return 124
-      }
-      complete -F _ssh_completion_loader s
-   fi
+   delegate_completion make _make m
+   delegate_completion ping _ping p
+   delegate_completion rsync _rsync r
+   delegate_completion ssh _ssh s
+   delegate_completion wget _wget wget-m wget-wrapper ww
 
-   unset has_completion
+   unset has_completion delegate_completion
 
    complete -A job bg fg j jobs wait
-   complete -A variable unset
+   complete -A variable -A function unset
 
    if [ -d "$HOME/lib/config" ]; then
       complete -W "`cd \"$HOME/lib/config\" && echo *`" include
@@ -162,43 +154,30 @@ if test -n "$BASH_VERSION"; then
    #   rm -rf /tmp/pip_build_"$USER"
    #fi
 
+   #if which pyenv >/dev/null 2>&1; then
+   #   eval "`pyenv init -`"
+   #   eval "`pyenv virtualenv-init -`"
+   #fi
+
+   source virtualenvwrapper_lazy.sh 2>/dev/null
+
 elif test -n "$KSH_VERSION" -o -n "$FCEDIT"; then
    back() { cd - "$@"; }
-   clo() { clear; exit; }
    j() { jobs; }
-
-else
-   clo() { clear; exit; }
 fi
 
 
-# clear history, clear screen and logout
-#chlo() { cd; unset HISTFILE; rm -f .sh_history; history -c; clo; }
-
-
-#Pwd() { pwd | sed "s/.*\/\(.*\)\/\(.*\)\/\(.*\)\/\(.*\)/...\/\2\/\3\/\4/"; }
-#PWd() { pwd | sed "s/.*\/\(.*\)\/\(.*\)/...\/\2/"; }
-
-
-psg()   { ps auxw   | grep -i "$@" | grep -v '\(ps auxw\|grep\)'; }
-pswg()  { ps auxwww | grep -i "$@" | grep -v '\(ps auxw\|grep\)'; }
-
-# Like pgrep -f
-pidOf() { ps auxwww | grep -i "$@" | grep -v '\(ps auxw\|grep\|pidOf\|KillAll\)' | awk '{print $2}'; }
-
-# A kind of pkill/killall
-KillAll() {
-   if [ -z "$2" ]; then
-      kill `pidOf "$1"`
-   else
-      kill "$1" `pidOf "$2"`
-   fi
-}
+# clear screen and history, logout
+chlo() { clear; cd; >$HISTFILE; unset HISTFILE; history -c; logout || exit; }
 
 
 if test -x /usr/bin/git >/dev/null 2>&1; then
    # chdir to a remote's directory (if the remote is on the local FS)
    cdremote() {
+      if [ -z "$1" -o -n "$2" ]; then
+         echo "Usage: cdremote remote_name" >&2
+         return 1
+      fi
       cd "`git config --get remote.$1.url`"
    }
 
@@ -217,6 +196,10 @@ if test -x /usr/bin/git >/dev/null 2>&1; then
 
       # list remotes with URLs matching a regexp
       _list_remotes() {
+         if [ -z "$1" -o -n "$2" ]; then
+            echo "Usage: _list_remotes remote_regexp" >&2
+            return 1
+         fi
          GIT_REMOTES=""
          local remote
          for remote in `git remote`; do
@@ -368,16 +351,6 @@ if which tmux >/dev/null 2>&1; then
 fi
 
 
-#if which pyenv >/dev/null 2>&1; then
-#   eval "`pyenv init -`"
-#   eval "`pyenv virtualenv-init -`"
-#fi
-
-if [ -f /usr/local/bin/virtualenvwrapper_lazy.sh ]; then
-   source /usr/local/bin/virtualenvwrapper_lazy.sh
-fi
-
-
 if [ "$SHLVL" -eq 1 ] && which startx >/dev/null 2>&1; then
    X() { startx >> .Xserver.log 2>&1; cyr; }
 fi