diff options
author | Guillaume Maudoux <layus.on@gmail.com> | 2015-06-16 23:12:19 +0200 |
---|---|---|
committer | Guillaume Maudoux <layus.on@gmail.com> | 2015-06-16 23:12:19 +0200 |
commit | 134dc0965c24713b609d5ab429fa4301ce0fbcaa (patch) | |
tree | f49d1ae2eb3d53e3187977a7f90bfde81723b50b | |
parent | 6a32cd39f64b96422ac3a69472347de56cc31e16 (diff) |
Refactor diff pipeline
* Avoid extended regexes usage in grep and sed;
* Minimize the number of calls to grep and sed;
* Add comments.
-rwxr-xr-x | nix-script-diff-generations.sh | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/nix-script-diff-generations.sh b/nix-script-diff-generations.sh index b64b600..3a60f15 100755 --- a/nix-script-diff-generations.sh +++ b/nix-script-diff-generations.sh @@ -114,9 +114,15 @@ stdout "Generation packages written for $GEN_B" stdout "Diffing now..." -diff -u $versA $versB | grep "nix/store" | sed 's:/nix/store/: :' | \ - grep -E "^(\+|\-).*" | sed -r 's:(.) ([a-z0-9]*)-(.*):\1 \3:' | \ - sort -k 2 -k 1,1r +diff -u $versA $versB | \ + # Select only lines that differ. + # (no context, no file name, no line number, etc.) + grep '^[+-]/nix/store' | \ + # Remove the "/nix/store/<hash>" garbage. + # Add a space instead, to separate the [+-] from the name. + sed 's:/nix/store/[^-]*-: :' | \ + # sort by name, then prefer '+' over '-'. + sort -k 2 -k 1,1r stdout "Removing tmp directories" |