]> git.phdru.name Git - git-scripts.git/commitdiff
Feat(submodules/diff-name-only): Run recursively
authorOleg Broytman <phd@phdru.name>
Fri, 28 May 2021 21:56:56 +0000 (00:56 +0300)
committerOleg Broytman <phd@phdru.name>
Fri, 28 May 2021 21:56:56 +0000 (00:56 +0300)
submodules/diff-name-only

index 3736e8eaa926684662285496b3fd2ea7f5e74f4c..445df523d2c1ce2d4ed5ca5276d05110cd38b982 100755 (executable)
@@ -6,16 +6,27 @@ if [ -z "$1" ]; then
     exit 1
 fi
 
+if [ -z "$prog_dir" -o -z "$prog_name" ]; then
+    start_dir="`pwd`"
+    prog_dir="`dirname \"$0\"`"
+    prog_name="`basename \"$0\"`"
+    cd "$prog_dir"
+    # Get full path
+    prog_dir="`pwd`"
+    cd "$start_dir"
+    export prog_dir prog_name
+fi
+
 from_commit="$1"
 to_commit="${2:-HEAD}"
 export from_commit to_commit
 
 # In the superproject
-git --no-pager diff --name-only "$from_commit" "$to_commit"
+git --no-pager diff --name-only "$from_commit" "$to_commit"
 
 git submodule foreach '
     # In submodule "$name"
     prev_commit=`(git -C "$toplevel" ls-tree "$from_commit" "$sm_path" | awk "{print \\$3}")`
     curr_commit=`(git -C "$toplevel" ls-tree "$to_commit" "$sm_path" | awk "{print \\$3}")`
-    git --no-pager diff --name-only $prev_commit $curr_commit
-'; } | { test -t 1 && ${PAGER:-less} || cat -; }
+    "$prog_dir/$prog_name" $prev_commit $curr_commit
+'