From: short <> Date: Sat, 1 Jan 2005 18:21:45 +0000 (+0000) Subject: Initial patchset, a bit buggy yet. X-Git-Url: https://git.jankratochvil.net/?p=nethome.git;a=commitdiff_plain;h=refs%2Fheads%2Fliverpm Initial patchset, a bit buggy yet. --- diff --git a/bin/backup-rpm b/bin/backup-rpm index 409512e..75f5bf3 100755 --- a/bin/backup-rpm +++ b/bin/backup-rpm @@ -1,26 +1,65 @@ #! /bin/bash set -ex +set -o pipefail t=/tmp/backup-rpm.$$ trap "rm -rf $t" EXIT rm -rf $t mkdir $t -rpm -qa|sort >$t/rpm-qa -rpm -qal|sort -u >$t/rpm-qal -(set +e;rpm -Va >$t/rpm-Va) +cd $t +mkdir $t/tmp +rpm -qa|sort >$t/tmp/rpm-qa +rpm -qal|sort -u|grep -v '^(contains no files)$' >$t/tmp/rpm-qal +(set +e;rpm -Va|sed 's#^[^/]*##' >$t/tmp/rpm-Va) +pattern="`tr '\n' '|' <"$base".patch) - echo "$orig" - echo "$base" - echo "$base".patch|tee -a $t/patch.list - done - )|grep -v '^\(/boot/\|/dev/\|/etc/rc[.]d/rc[0-9][.]d/\|/lib/modules/[^/]*/modules[.]\|/root/\|/tmp/\|/usr/lib/perl5/\|/usr/src/redhat/\|/var/cache/\|/var/lib/rpm/\|/var/log/\|/var/run/\|/var/spool/\|/var/lock/\|/usr/share/ntop/\|/usr/lib/locale/locale-archive\|/var/lib/slocate/slocate.db\|/usr/share/man/\|/etc/aliases.db\|/var/tmp/\|/etc/prelink.cache\|/etc/sgml/\|/home/\|/usr/include/tags\|/usr/lib/IPTables-IPv4/\|/usr/lib/python2.3/\|/usr/lib/rpmdb\|/usr/share/texmf/\|/usr/share/yum-cli\|/var/db/nscd/\)' \ - |grep -v '^(contains no files)$' \ - |(echo $t/rpm-qa;cat) \ - |sort -u|sed 's#^/##'|(cd /;set +e;xargs tar cf -) -cat $t/patch.list|xargs rm -f + (find / -xdev -print -type d -print;cat $t/tmp/rpm-qal)|sort|uniq -u + cat $t/tmp/rpm-Va + while read -r file;do + # cpio(1) needs "./bin/bash" pattern. + rpm="$(for dir in /var/cache/yum /usr/src/redhat/RPMS /root/arch;do + find $dir -name "`rpm -qf "$file"`.*.rpm" + done|grep -v '[.]src[.]rpm$')" + echo "$rpm"|grep -qv ' ' + rpm2cpio "$rpm"|cpio -id --no-absolute-filenames ."$file" + mv ."$file" ."$file"-orig + (set +e;diff -u ."$file"-orig "$file" >."$file".patch) + echo ."$file"-orig + echo ."$file".patch + done <$t/tmp/rpm-Va + ) \ + |grep --perl-regexp -v -e "^($pattern)" \ + |(echo $t/tmp/rpm-qa;cat) \ + |sort -u ###|sed 's#^/##'|(cd /;set +e;xargs tar cf -) +echo SUCCESS