diff options
Diffstat (limited to 'etc/functions')
-rwxr-xr-x | etc/functions/git-hook | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/etc/functions/git-hook b/etc/functions/git-hook deleted file mode 100755 index 86c2bbb..0000000 --- a/etc/functions/git-hook +++ /dev/null @@ -1,61 +0,0 @@ -## vim:ft=zsh -## Small function to help with git hooks -## Copyright (C) 2008 by Daniel Friesel <derf@derf.homelinux.org> -## License: WTFPL <http://sam.zoy.org/wtfpl> - -autoload fdie -typeset hook_dir action=${1=list} hook=$2 - -if [[ -n $GIT_DIR && -d $GIT_DIR ]] { - hook_dir=$GIT_DIR/hooks -} elif [[ -d .git/hooks ]] { - hook_dir=$PWD/.git/hooks -} elif [[ -d hooks ]] { - hook_dir=$PWD/hooks -} elif [[ $PWD == */hooks ]] { - hook_dir=$PWD -} else { - hook_dir=$(git rev-parse --git-dir)/hooks || - return -} - -function usage { - cat <<- ENDOFHELP - Usage: git-hook enable|disable <hook> - ENDOFHELP -} - -function hook_enable { - if [[ -e $hook_dir/$hook ]] { - if ! [[ -x $hook_dir/$hook ]] { - chmod +x $hook_dir/$hook - } - } else { - fdie "No such hook: '$hook'"; return - } -} - -function hook_disable { - if [[ -e $hook_dir/$hook ]] { - if [[ -x $hook_dir/$hook ]] { - chmod -x $hook_dir/$hook - } - } else { - fdie "No such hook: '$hook'"; return - } -} - -function hook_list { - for hook in $hook_dir/*; { - [[ -x $hook ]] && echo -n $green - echo -n ${hook:t} - echo $reset - } -} - -case $action in - enable) shift 2; hook_enable $* ;; - disable) shift 2; hook_disable $* ;; - list) shift; hook_list $* ;; - *) usage ;; -esac |