#!/usr/bin/env sh check() { echo "$2" | grep -q "$1"; }; VCS_STR="" VCS_INF="" VCS_NEW="" VCS_MOD="" VCS_REC="" SPC="" if [ -d ".git" ] || [ -d "../.git" ] || [ -d "../../.git" ]; then outp=$(git status) VCS_STR="×" VCS_INF="$(echo "$outp" | head -n 1 | cut -d' ' -f 3-)" if check "^Untracked files:$" "$outp"; then VCS_NEW="*" fi; if check "^Changes not staged for commit:$" "$outp"; then VCS_MOD="±" fi; if check "^Changes to be committed:$" "$outp"; then VCS_REC="↑" fi; fi; if [ -n "$VCS_STR" ]; then flags="$VCS_NEW$VCS_MOD$VCS_REC"; [ -n "$flags" ] && SPC=" " echo "$VCS_STR{$VCS_INF$SPC$flags}" fi;