summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2015-03-18 19:44:34 +0100
committerMatthias Beyer <mail@beyermatthias.de>2015-03-18 20:06:50 +0100
commitef8930a7fd8c70f5e5e580fd7f8eb7289db930e7 (patch)
tree776736a161bce50ebf972db3090b6157bcf2c866
parent96cb378939e0ac0ee667518ebe259e395225315e (diff)
diff-generations: Check whether generation link exists
-rwxr-xr-xnix-script-diff-generations.sh16
1 files changed, 14 insertions, 2 deletions
diff --git a/nix-script-diff-generations.sh b/nix-script-diff-generations.sh
index 76283b2..8516e64 100755
--- a/nix-script-diff-generations.sh
+++ b/nix-script-diff-generations.sh
@@ -1,5 +1,8 @@
#!/usr/bin/env bash
+Color_Off='\e[0m'
+Red='\e[0;31m'
+
if [[ -z "$1" || -z "$2" ]]
then
echo "Not enough arguments, expecting two numbers (generations)"
@@ -9,11 +12,20 @@ fi
LOC=/nix/var/nix/profiles/per-user/$USER
TYPE=profile
+DIR_A=$LOC/$TYPE-$1-link
+DIR_B=$LOC/$TYPE-$2-link
+
+if [[ ! -e $DIR_A || ! -e $DIR_B ]]
+then
+ echo -e "${Red}Either generation $1 or $2 does not exist.${Color_Off}"
+ exit 1
+fi
+
versA=$(mktemp)
-nix-store -qR $LOC/$TYPE-$1-link > $versA
+nix-store -qR $DIR_A > $versA
versB=$(mktemp)
-nix-store -qR $LOC/$TYPE-$2-link > $versB
+nix-store -qR $DIR_B > $versB
diff -u $versA $versB | grep "nix/store" | sed 's:/nix/store/: :' | \
grep -E "^(\+|\-).*" | sed -r 's:(.) ([a-z0-9]*)-(.*):\1 \3:' | \