]> git.phdru.name Git - dotfiles.git/blobdiff - .shellrc
.shellrc: rename list_remotes to _list_remotes
[dotfiles.git] / .shellrc
index 7b362b894343cebf856e0e86016dc912f6a80210..544e298fcf4099338c61bad2130e12d58a228320 100644 (file)
--- a/.shellrc
+++ b/.shellrc
@@ -16,16 +16,16 @@ esac
 # [ -z "$PS1" ] && return
 
 if test -n "$BASH_VERSION"; then
-# append to the history file, don't overwrite it
-shopt -s histappend
+   # append to the history file, don't overwrite it
+   shopt -s histappend
 
-# check the window size after each command and, if necessary,
-# update the values of LINES and COLUMNS.
-shopt -s checkwinsize
+   # check the window size after each command and, if necessary,
+   # update the values of LINES and COLUMNS.
+   shopt -s checkwinsize
 
-# If set, the pattern "**" used in a pathname expansion context will
-# match all files and zero or more directories and subdirectories.
-#shopt -s globstar
+   # If set, the pattern "**" used in a pathname expansion context will
+   # match all files and zero or more directories and subdirectories.
+   #shopt -s globstar
 fi
 
 
@@ -165,44 +165,53 @@ KillAll() {
 }
 
 
-# git-related
-
-# chdir to a remote's directory (if the remote is on the local FS)
-cdremote() {
-   cd "`git config --get remote.$1.url`"
-}
-
-if test -n "$BASH_VERSION"; then
-   # list remotes with URLs matching a regexp
-   list_remotes() {
-      GIT_REMOTES=""
-      local remote
-      for remote in `git remote`; do
-         if git config --get remote.$remote.url | grep -q "$1"; then
-            GIT_REMOTES="$GIT_REMOTES $remote"
-         fi
-      done
+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() {
+      cd "`git config --get remote.$1.url`"
    }
 
-   # completion for cdremote - list remotes with directories as URLs
-   _cdremote_complete() {
-      local cur="${COMP_WORDS[COMP_CWORD]}";
-      list_remotes '^\(/\|\.\./\)' # (/ or ../ at the beginning)
-      COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
-      unset GIT_REMOTES
-   }
-
-   complete -F _cdremote_complete cdremote
-
-   # completion for git-open - list remotes with http(s) URLs
-   _git_open() {
-      local cur="${COMP_WORDS[COMP_CWORD]}";
-      list_remotes '^http\(s\)\?://'
-      COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
-      unset GIT_REMOTES
-   }
-
-   complete -F _git_open git-open
+   if test -n "$BASH_VERSION"; then
+      # completion for global aliases in .gitconfig
+      # fixup rbi rbia rbiap rbip - delegate to git-rebase completion
+
+      _git_fixup() { _git_rebase ; }
+      _git_rbi() { _git_rebase ; }
+      _git_rbia() { _git_rebase ; }
+      _git_rbiap() { _git_rebase ; }
+      _git_rbip() { _git_rebase ; }
+
+      # list remotes with URLs matching a regexp
+      _list_remotes() {
+         GIT_REMOTES=""
+         local remote
+         for remote in `git remote`; do
+            if git config --get remote.$remote.url | grep -q "$1"; then
+               GIT_REMOTES="$GIT_REMOTES $remote"
+            fi
+         done
+      }
+
+      # completion for cdremote - list remotes with directories as URLs
+      _cdremote_complete() {
+         local cur="${COMP_WORDS[COMP_CWORD]}";
+         _list_remotes '^\(/\|\.\./\)' # (/ or ../ at the beginning)
+         COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
+         unset GIT_REMOTES
+      }
+
+      complete -F _cdremote_complete cdremote
+
+      # completion for git-open - list remotes with http(s) URLs
+      _git_open() {
+         local cur="${COMP_WORDS[COMP_CWORD]}";
+         _list_remotes '^http\(s\)\?://'
+         COMPREPLY=(`compgen -W "$GIT_REMOTES" -- "$cur"`)
+         unset GIT_REMOTES
+      }
+
+      complete -F _git_open git-open
+   fi
 fi
 
 
@@ -308,17 +317,19 @@ mkcd() {
 }
 
 
-tmux() {
-   case "$TERM" in
-      rxvt)
-         TERM=rxvt-unicode command tmux "$@"
-      ;;
+if which tmux >/dev/null 2>&1; then
+   tmux() {
+      case "$TERM" in
+         rxvt)
+            TERM=rxvt-unicode command tmux "$@"
+         ;;
 
-      *)
-         command tmux "$@"
-      ;;
-   esac
-}
+         *)
+            command tmux "$@"
+         ;;
+      esac
+   }
+fi
 
 
 #if which pyenv >/dev/null 2>&1; then
@@ -331,5 +342,8 @@ if [ -f /usr/local/bin/virtualenvwrapper_lazy.sh ]; then
 fi
 
 
-X() { startx >> .Xserver.log 2>&1; cyr; }
+if [ "$SHLVL" -eq 1 ] && which startx >/dev/null 2>&1; then
+   X() { startx >> .Xserver.log 2>&1; cyr; }
+fi
+
 x() { exit; }