summaryrefslogtreecommitdiff
path: root/bin/extra/supd
diff options
context:
space:
mode:
authorRaymaekers Luca <raymaekers.luca@gmail.com>2023-10-15 00:33:26 +0200
committerRaymaekers Luca <raymaekers.luca@gmail.com>2023-10-15 00:33:26 +0200
commit826ce094fecc4c6e07faf6e8b91387c2ae49842c (patch)
tree1820c843e4e260f6b51e8d269a972295a17e558c /bin/extra/supd
parentc032a9d071ee4b7eb2bfe79ec03d2a7dc4020f15 (diff)
parenta915b5ade1a47b9678e2f9963b13b49dbd406031 (diff)
Merge branch 'main' of db:dotfiles
Diffstat (limited to 'bin/extra/supd')
-rwxr-xr-xbin/extra/supd38
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"