Compare commits

...

2 Commits

Author SHA1 Message Date
433faa03ab now trailing .git is properly ignored...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-11-09 00:50:41 +03:00
c2da2b01b4 ...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
2024-11-08 00:45:13 +03:00

View File

@ -1,5 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
shopt -s globstar shopt -s globstar
while true ; do while true ; do
@ -20,7 +21,7 @@ while true ; do
echo "or recursively:" echo "or recursively:"
echo " $ git listall -r > reposiotry.lst" echo " $ git listall -r > reposiotry.lst"
echo echo
echo "If a repository list already exists it can be expanded via:" echo "If a repository list already exists it can be updated via:"
echo " $ git listall -r reposiotry.lst >> reposiotry.lst" echo " $ git listall -r reposiotry.lst >> reposiotry.lst"
echo echo
echo "For info on list file format see:" echo "For info on list file format see:"
@ -41,6 +42,12 @@ while true ; do
continue continue
;; ;;
-u|--update)
REPOS_FILE=$2
shift 2
continue
;;
-*|--*) -*|--*)
echo "Error: unknown option: \"$1\"" >&2 echo "Error: unknown option: \"$1\"" >&2
exit exit
@ -73,6 +80,10 @@ else
REPOS=(./*/.git/config) REPOS=(./*/.git/config)
fi fi
if [ -e "$LIST" ] ; then
echo
echo "# $(date)"
fi
# format and print unique lines... # format and print unique lines...
lines=() lines=()
{ {
@ -82,7 +93,8 @@ lines=()
| sed -n '/\[remote "origin"\]/,/^\s*url/p' \ | sed -n '/\[remote "origin"\]/,/^\s*url/p' \
| grep 'url = ' \ | grep 'url = ' \
| sed \ | sed \
-e 's/\s*url\s*=\s*//') -e 's/\s*url\s*=\s*//' \
-e 's/.git\s*$//')
[ -z $remote ] \ [ -z $remote ] \
&& continue && continue
line="$path=$remote" line="$path=$remote"
@ -92,7 +104,9 @@ lines=()
if [ -e "$LIST" ] ; then if [ -e "$LIST" ] ; then
cat "$LIST" \ cat "$LIST" \
| grep -ve '\(^\s*#\|^\s*$\)' \ | grep -ve '\(^\s*#\|^\s*$\)' \
| sed -e 's/^-//' | sed \
-e 's/^-//' \
-e 's/.git\s*$//'
fi fi
} \ } \
| sort \ | sort \