diff-memberships: add list diffing script
[user/alex/software/my-snippets.git] / diff-memberships
diff --git a/diff-memberships b/diff-memberships
new file mode 100755 (executable)
index 0000000..92016f2
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+qy="athrun ops qy"
+
+#queries="get_ace_use get_lists_of_member"
+queries=( "gaus" "glom" )
+subjectname="$USER"
+for query in ${queries[@]}; do
+    for mod in "" "r"; do
+        hmod=$mod
+        if [ -z "$mod" ]; then hmod="nr"; fi
+        $qy $query ${mod}user "$subjectname" -s | sort > data/$query-user-$hmod.txt
+        $qy $query ${mod}kerberos "$subjectname@ATHENA.MIT.EDU" -s | sort > data/$query-kerb-$hmod.txt
+    done
+done
+
+cd "$(dirname "$0")/data/"
+
+stat="$(git diff --stat)"
+
+for file in *.txt; do
+    result="$(git diff "$file")"
+    if [ -n "$result" ]; then
+        zwrite -c "$subjectname-lists" -i "$file" "$subjectname" -m "$result"
+    fi
+done
+
+git commit -a -m "$(printf "Regular list update: %s\n\n%s" "$(date)" "$stat")"