On 1/3/07, Aaron Griffin <aaronmgriffin@gmail.com> wrote:
This is in CVS. I haven't tested it, so let me know if it all looks ok from your end.
Okay, testing it from CVS showed me some bugs (mostly in how I did error checking). But I fixed it and now it works. Also, I noticed that I did not get colors from the stat_* functions so I added USECOLOR="YES" to get colors before sourcing /etc/rc.d/functions. I expect if an Arch user does not want colors they are capable enough to edit that one line. I am not entirely sure on where to put the "Signed Off" message mentioned in submitting-patches. ~ Jamie / yankees26 Signed-off-by: James Rosten <seinfeld90@gmail.com> Index: pacman-optimize =================================================================== RCS file: /home/cvs-pacman/pacman-lib/scripts/pacman-optimize,v retrieving revision 1.5 diff -u -p -r1.5 pacman-optimize --- ORIG/scripts/pacman-optimize 3 Jan 2007 05:45:18 -0000 1.5 +++ NEW/scripts/pacman-optimize 4 Jan 2007 00:34:17 -0000 @@ -23,9 +23,11 @@ myver='3.0.0' error() { - echo -e "\033[1;31m:: ERROR:\033[1;0m\033[1;1m$@\033[1;0m" >&2 + echo -e "\033[1;31m:: ERROR: \033[1;0m\033[1;1m$@\033[1;0m" >&2 } +# Set USECOLOR so the stat_* functions from /etc/rc.d/functions use color +USECOLOR=YES source /etc/rc.d/functions usage() { @@ -88,16 +90,24 @@ stat_done # step 2: tar it up stat_busy "Tar'ing up $dbroot" cd $dbroot -tar -czf /tmp/pacmanDB.tgz ./ || \ - stat_fail && die_r "tar'ing up $dbroot failed" +tar -czf /tmp/pacmanDB.tgz ./ +if [ $? -ne 0 ]; then + stat_fail + rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old + die_r "tar'ing up $dbroot failed" +fi stat_done # step 3: make and sum the new db stat_busy "Making and md5sum'ing the new db" mkdir $dbroot.new -tar -zxpf /tmp/pacmanDB.tgz -C $dbroot.new/ || \ - stat_fail && die_r "untar'ing $dbroot failed" -find $dbroot.new -type -f | sort | xargs md5sum > /tmp/pacsums.new +tar -zxpf /tmp/pacmanDB.tgz -C $dbroot.new/ +if [ $? -ne 0 ]; then + rm -f /tmp/pacmanDB.tgz /tmp/pacsums.old + rm -rf "$dbroot.new" + die_r "untar'ing $dbroot failed" +fi +find $dbroot.new -type f | sort | sed -e 's/pacman.new/pacman/g' | xargs md5sum > /tmp/pacsums.new stat_done # step 4: compare the sums @@ -110,6 +120,7 @@ if [ $? -ne 0 ]; then rm -rf "$dbroot.new" /tmp/pacman.lck /tmp/pacmanDB.tgz die_r "integrity check FAILED, reverting to old database" fi +stat_done # step 5: remove the new temporary database and the old one # and use the .tgz to replace the old one @@ -119,7 +130,7 @@ tar -zxpf /tmp/pacmanDB.tgz -C "$dbroot" stat_done # remove the lock file, sum files, and .tgz of database -rm -f /tmp/pacman.lck /tmp/pacmsums.old /tmp/pacmsums.new /tmp/pacmanDB.tgz +rm -f /tmp/pacman.lck /tmp/pacsums.old /tmp/pacsums.new /tmp/pacmanDB.tgz echo echo "Finished. Your pacman database has been optimized."