diff options
Diffstat (limited to 'bin/extra/supd')
-rwxr-xr-x | bin/extra/supd | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/bin/extra/supd b/bin/extra/supd index 931d808..4975b94 100755 --- a/bin/extra/supd +++ b/bin/extra/supd @@ -1,24 +1,44 @@ #!/bin/sh -print_dir () { printf '%s: ' "$1" | sed "s#$HOME#~#" >&2; } +usage() { + >&2 cat <<-EOF + usage: supd + supd <prefix> <dir> + stdout | supd <prefix> + EOF + exit 1 +} check () { for dir in $1 do - print_dir "$2/$dir" + printf '%s: ' "$2/$dir" | sed "s#$HOME#~#" >&2 cd "$2/$dir" || continue git pull > /dev/null 2>&1 && printf 'Up to date.' || printf 'Couldn'\''t update.' - printf '\n' + printf ' ' + printf '%s %s\n' "$(git status --short 2> /dev/null | + awk 'NR==1 {print $1}')" "$(git branch -v 2>/dev/null | + grep '^\*' | cut -f2 -d'[' | cut -f1 -d' ' | + sed 's/ahead/↑/;s/behind/↓/;s/\*//')" + done } -dirs="installdrier dotfiles password-store" -prefix="$HOME/src" +if [ "$#" -eq 0 ] +then + dirs="installdrier dotfiles password-store" + prefix="$HOME/src" +elif [ ! -t 0 ] +then + prefix="$1" + dirs="$(cat)" +else + prefix="$1" + shift || usage + dirs="$*" + [ "$dirs" ] || usage +fi check "$dirs" "$prefix" - -# dirs="$(ls -1 "$HOME/proj/personal")" -# prefix="$HOME/proj/personal" -# check "$dirs" "$prefix" |