diff options
Diffstat (limited to 'beagle/debian-rfs/usr/share/insserv/seq-changes')
| -rwxr-xr-x | beagle/debian-rfs/usr/share/insserv/seq-changes | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/beagle/debian-rfs/usr/share/insserv/seq-changes b/beagle/debian-rfs/usr/share/insserv/seq-changes new file mode 100755 index 0000000..4610bec --- /dev/null +++ b/beagle/debian-rfs/usr/share/insserv/seq-changes @@ -0,0 +1,54 @@ +#! /bin/bash +# Script from Frans Pop + +set -e + +if [ -z "$1" ]; then + echo "Usage: insserv-seq-changes /var/lib/insserv/<old bootscripts tarball>" + exit 1 +fi + +oldtar="$(tar tzf $1)" +for i in S $(seq 0 6); do + echo "Runlevel $i" + new="$(cd /etc/rc$i.d; ls -1 [KS]* | sort | nl)" + old="$(echo "$oldtar" | grep "^rc$i.d/[KS]" | cut -d/ -f2 | sort | nl)" + case $i in + S|0|6) + old="$(echo "$old" | sed -r "s/[KS][0-9]+//")" + new="$(echo "$new" | sed -r "s/[KS][0-9]+//")" + ;; + *) + old="$(echo "$old" | sed -r "s/([KS])[0-9]+/\1_/")" + new="$(echo "$new" | sed -r "s/([KS])[0-9]+/\1_/")" + ;; + esac + echo "$new" | while read num cmd; do + oldnum=$(echo "$old" | grep "[[:space:]]$cmd$" | awk '{print $1}') + if [ "$oldnum" ]; then + diff=$(($num - $oldnum)) + else + oldnum="---" + diff="" + fi + if [ ${#cmd} -ge 16 ]; then + echo -e "$cmd\t$num\t$oldnum\t$diff" + elif [ ${#cmd} -ge 8 ]; then + echo -e "$cmd\t\t$num\t$oldnum\t$diff" + else + echo -e "$cmd\t\t\t$num\t$oldnum\t$diff" + fi + done + echo "$old" | while read num cmd; do + if ! echo "$new" | grep -q "[[:space:]]$cmd$"; then + if [ ${#cmd} -ge 16 ]; then + echo -e "$cmd\t---\t$oldnum" + elif [ ${#cmd} -ge 8 ]; then + echo -e "$cmd\t\t---\t$oldnum" + else + echo -e "$cmd\t\t\t---\t$oldnum" + fi + fi + done + echo +done |
