diff options
| author | Tslil Clingman <hiato1@gmail.com> | 2013-08-09 14:03:45 +0200 |
|---|---|---|
| committer | Tslil Clingman <hiato1@gmail.com> | 2013-08-09 14:03:45 +0200 |
| commit | f2b32d25177be465c7209072eb93ae14fc16dfa3 (patch) | |
| tree | 52e8d412518d5b3d4c70c068b7ef11dde6cac03d /vcs | |
| parent | 3bd9f307d5cd0128ea4fa37aaecaadac5629521c (diff) | |
The vcs script I use for my PS1 and some minor changes
Diffstat (limited to 'vcs')
| -rwxr-xr-x | vcs | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -0,0 +1,47 @@ +#!/bin/zsh + +check() { + echo $1 | grep -q $2; +}; + +VCS_STR="" +VCS_INF="" +VCS_NEW="" +VCS_MOD="" +VCS_REC="" + +nstr=" %F{red}●%f" +mstr=" %F{11}●%f" +rstr=" %F{28}●%f" + +if [[ -d ".git" || -d "../.git" || -d "../../.git" ]]; then + outp=$(git status) + VCS_STR="×" + VCS_INF=$(echo $outp | head -n 1 | cut -d' ' -f 4-) + check $outp "^# Untracked files:$" + [[ $? = 0 ]] && VCS_NEW=$nstr + check $outp "^# Changes not staged for commit:$" + [[ $? = 0 ]] && VCS_MOD=$mstr + check $outp "^# Changes to be committed:$" + [[ $? = 0 ]] && VCS_REC=$rstr +else if [[ -d "_darcs" || -d "../_darcs" || -d "../../_darcs" ]]; then + fls=$(darcs show files) + VCS_STR="+" + VCS_INF=$(darcs show repo | grep Default | cut -d : -f 3-) + for f in ./*; do + if [[ -f $f ]]; then + echo $fls | grep -q $f + else + true + fi; + if [[ ! $? = 0 ]]; then + VCS_NEW=$nstr; + break; + fi; + done; + news=$(darcs what)$ + check $news "^No changes!$" + [[ ! $? = 0 ]] && VCS_REC=$rstr +fi; fi; + +[[ ! "$VCS_STR" = "" ]] && echo "%F{green}$VCS_STR%f{%F{blue}$VCS_INF%f$VCS_REC$VCS_MOD$VCS_NEW}" |
