shell_help "List repos git status" "$@" && return
local status i branch
local ret=0
+ local repo_filter="$1"
local sav_pwd=${PWD:-$(pwd)}
+ local repo
- for i in ${@:-$(nb_repos)}; do
- cd "$i" || continue
+ for repo in ${@:-$(nb_repos)}; do
+ [ -n "$repo_filter" -a "$repo_filter" != "$repo" ] && continue
+ cd "$repo" || continue
- local u=$( ls -1dl "$i" | awk '{print $3}' )
+ local u=$( ls -1dl "$repo" | awk '{print $3}' )
if [ "$u" != "$USER" ]; then
- printf "%s %s\n" "$i" "WRONG OWNER"
+ #printf "%s %s\n" "$repo" "WRONG OWNER"
+ sudo -i -u "$u" nb_repos_status "$repo"
+ [ "$?" != "0" ] && ret=1
continue
fi
git checkout --quiet "$branch" 2>/dev/null || continue
status=$(git status --short | grep -v '^#'|sed 's/^/ /') || continue
[ -n "$status" ] && status=$'\n'"$status" && ret=1
- printf "%s %s\n" "$i [$branch]" "$status"
+ printf "%s %s\n" "$repo [$branch]" "$status"
done