cd "$pwd"
}
+nb_repo_su_exec() {
+ local usage="nb_repo_su_exec REPO_DIR COMMAND"
+ local repo="${1:?$usage}"; shift
+ local u=$( ls -1dl "$repo" | awk '{print $3}' )
+ if [ "$u" != "$USER" ]; then
+ sudo -i -u "$u" $@
+ #return 0
+ else
+ $@
+ #return 1
+ fi
+}
+
nb_repos_status() {
shell_help "List repos git status" "$@" && return
local status i branch
[ -n "$repo_filter" -a "$repo_filter" != "$repo" ] && continue
cd "$repo" || continue
- local u=$( ls -1dl "$repo/.git" | awk '{print $3}' )
+ local u=$( ls -1dl "$repo" | awk '{print $3}' )
if [ "$u" != "$USER" ]; then
- #printf "%s %s\n" "$repo" "WRONG OWNER"
sudo -i -u "$u" nb_repos_status "$repo"
[ "$?" != "0" ] && ret=1
continue
}
nb_repos_grep() {
- nb_repos_ls_files | while read i; do
- grep "$@" -HsIE "$i"
+ nb_repos | while read repo; do
+ nb_repo_su_exec "$repo" git grep --full-name -HIE "$@" | sed "s|^|$repo/|"
done
+ # NB 25.10.24 nb_repos_ls_files | while read i; do
+ # NB 25.10.24 grep "$@" -HsIE "$i"
+ # NB 25.10.24 done
}
nb_repos_ls_files() {
nb_repos | while read r; do
- git -C "$r" ls-files --full-name 2>/dev/null| while read i; do
- i="$r/$i"
- [ ! -e "$i" -o -d "$i" ] && continue
- echo $i
- done
- done
- return 0
- local i
- for i in `nb_repos`; do
- #git -C "$i" ls-files | sed -e "s!^!$i/!" -e "s!^//\+!/!"
- git -C "$i" ls-files --full-name | sed -e "s!^!$i/!" -e "s!^//\+!/!"
+ nb_repo_su_exec "$r" git -C "$r" ls-files --full-name --exclude='*/' 2>/dev/null | sed "s|^|$r/|"
+ # NB 25.10.24 git -C "$r" ls-files --full-name 2>/dev/null| while read i; do
+ # NB 25.10.24 i="$r/$i"
+ # NB 25.10.24 [ ! -e "$i" -o -d "$i" ] && continue
+ # NB 25.10.24 echo $i
+ # NB 25.10.24 done
done
}