From 7f9bc47eac9ba5705ffef340de2bdd7ac23b6c7f Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Fri, 25 Oct 2024 10:50:21 +0200 Subject: [PATCH] etc/profile.d/nb.sh --- etc/profile.d/nb.sh | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/etc/profile.d/nb.sh b/etc/profile.d/nb.sh index 4375300d..106e210b 100644 --- a/etc/profile.d/nb.sh +++ b/etc/profile.d/nb.sh @@ -18,6 +18,19 @@ nb_repos_commit_push() { 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 @@ -30,9 +43,8 @@ nb_repos_status() { [ -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 @@ -164,24 +176,22 @@ nb_test() { } 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 } -- 2.47.3