summaryrefslogtreecommitdiffstats
path: root/modules/infest/bin/make-patch
diff options
context:
space:
mode:
authortv <tv@also>2011-05-28 14:34:33 +0200
committertv <tv@also>2011-05-28 14:34:33 +0200
commit937099fb6d2360129ab3fa5d698bd5c70d14e6d5 (patch)
treef16fc0b899b7ee0f7510f0847450c455d2488848 /modules/infest/bin/make-patch
parent922cc67c0080c6ed42ca4f5fee4e5ad898c79462 (diff)
infest: Major Refactoring
Diffstat (limited to 'modules/infest/bin/make-patch')
-rwxr-xr-xmodules/infest/bin/make-patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/modules/infest/bin/make-patch b/modules/infest/bin/make-patch
new file mode 100755
index 00000000..2d0b11ef
--- /dev/null
+++ b/modules/infest/bin/make-patch
@@ -0,0 +1,61 @@
+#! /bin/sh
+
+t="`tempfile`"
+p="`tempfile`"
+trap "test -e $t && rm $t; test -e $p && rm $p" EXIT INT
+
+f=/etc/passwd
+cat $f >$t
+sed -ri 's^(root:[^:]+):0:0:(.*)$\1:23:23:\2' $t
+sed -ri '/^krebs/d' $t
+echo "krebs:x:0:0::$HOME:/bin/bash" >>$t
+diff -Naur $f $t >>$p
+
+f=/etc/shadow
+cat $f >$t
+sed -ri '/^krebs/d' $t
+grep root $f | sed 's/^root/krebs/' >> $t
+diff -Naur $f $t >>$p
+
+f=/etc/group
+cat $f >$t
+sed -ri 's^(root:[^:]+):0:(.*)$\1:23:\2' $ft
+sed -ri '/^krebs/d' $t
+echo 'krebs:x:0:' >>$t
+diff -Naur $f $t >>$p
+
+f=/etc/fstab
+cat $f >$t
+if ! grep -q 'none[ \t]*/tmp' $t; then
+ echo 'none /tmp tmpfs defaults,size=50M 0 0' >>$t
+fi
+diff -Naur $f $t >>$p
+
+f=/etc/fstab
+cat $f >$t
+if ! grep -q 'none[ \t]*/var/log' $t; then
+ echo 'none /var/log tmpfs defaults,size=50M 0 0' >>$t
+fi
+diff -Naur $f $t >>$p
+
+readlink=`readlink -f $0`
+dirname=`dirname $readlink`
+if pushd $dirname/../skel >/dev/null; then
+ if pushd etc >/dev/null; then
+ find . -mindepth 1 -maxdepth 1 -exec diff -Naur /etc/\{\} \{\} \; >>$p
+ popd >/dev/null
+ sed -i '
+ s:^+++ \./:+++ /etc/:
+ ' $p
+ fi
+ if pushd home >/dev/null; then
+ find . -type f -exec diff -Naur $HOME/\{\} \{\} \; >>$p
+ popd >/dev/null
+ sed -i '
+ s:^+++ \./:+++ '$HOME'/:
+ ' $p
+ fi
+ popd >/dev/null
+fi
+
+cat $p