All pastes #433871 Raw Edit

Mine

public text v1 · immutable
·published 2007-04-11 01:37 UTC
rendered paste body
#!/bin/sh

# very very early state, and badly written script..
# check the md5sum of all config files in /var/lib/pacman/*/files
# and compare it to the md5sum in the packages in /var/cache/pacman/pkg/.
# packages not available are just skipped for now, 
# but they should probably be downloaded again instead.
# write unavailable packages to /tmp/pkg_unavailable.log,
# obsolete config files to /tmp/config_unavailable.log
# and wrong md5sums to stdout

backup=0
for file in `find /var/lib/pacman/ -name files`; do
  name=`echo "$file" |cut -d'/' -f6`
  pkg="/var/cache/pacman/pkg/$name.pkg.tar.gz"
  if [ ! -f "$pkg" ]; then
    echo "$name" >> /tmp/pkg_unavailable.log
    continue
  fi
  cat $file | 
  while read line; do
    if [ -z "$line" ]; then
      continue
    elif [ "$backup" == "1" ]; then
      config=`echo "$line" | cut -f1`
      md5cur=`echo "$line" | cut -f2`
      if [ "$config" == "$md5cur" ]; then
        echo "$name : $line" >> /tmp/config_unavailable.log
        continue
      fi
      md5ori=`tar xvzfO "$pkg" "$config" 2>/dev/null | md5sum \
        | cut -d' ' -f1`
      if [ "$md5cur" != "$md5ori" ]; then
        echo -n "$name : the md5sum of $config is $md5cur in the database"
        echo " and $md5ori in the package"
      fi
    elif [ "$line" == "%BACKUP%" ]; then
      backup=1
      continue
    fi
  done
  backup=0
done