summaryrefslogtreecommitdiff
path: root/src/samizdat-diff-root
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2019-06-19 18:26:54 -0400
committerAndrew Cady <d@jerkface.net>2019-06-19 20:04:53 -0400
commitddd28e45d507665ffd89b35e8c759b6add7686a6 (patch)
tree466e4b6f014f58dfb063e23f7cb59db9b6046a14 /src/samizdat-diff-root
parent0b63dd60a8187fd3367049aa1ad6a250cbac19ec (diff)
add some commands to the live system
Diffstat (limited to 'src/samizdat-diff-root')
-rwxr-xr-xsrc/samizdat-diff-root43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/samizdat-diff-root b/src/samizdat-diff-root
new file mode 100755
index 0000000..ea9bb85
--- /dev/null
+++ b/src/samizdat-diff-root
@@ -0,0 +1,43 @@
1#!/bin/sh
2mp=/mnt/root.tmp
3fs=/
4
5excludes='--exclude /var/log/ --exclude /tmp/'
6
7devs()
8{
9 btrfs fi sh "$fs" | sed -ne 's?^[ \t]*devid[ \t].*/dev?/dev?p'
10}
11
12[ $(id -u) = 0 ] || exec sudo "$0" "$@" || exit
13
14if ! [ -e "$mp" ] || ! mountpoint -q "$mp"
15then
16 mkdir -p "$mp"
17 dev=$(devs | tail -n1) || exit
18 mount -t btrfs "$dev" -o subvol=/ "$mp" || exit
19fi
20
21case $# in
22 0) run()
23 {
24 rsync -xani $excludes "$mp"/root/ "$mp"/root~orig/
25 }
26 ;;
27 *) run()
28 {
29 for f
30 do
31 diff "$mp"/root/"$f" "$mp"/root~orig/"$f"
32 done
33 }
34 ;;
35esac
36if [ -t 0 ]
37then
38 run "$@" | less
39else
40 run "$@"
41fi
42
43umount "$mp"