#!/bin/bash echo -n ">>> Checking if python's os.utime() works ... " OLDMTIME=`date -r $0 '+%s'` TESTMTIME=$((OLDMTIME - 3600)) echo "import os; os.utime(\"$0\", (${TESTMTIME}, ${TESTMTIME}));" | python if [ "`date -r $0 '+%s'`" != "${TESTMTIME}" ] then echo "ERROR" echo "Please reemerge python to fix os.utime()" exit fi echo "OK" PREFIX=${PREFIX:=''} export TZ=UTC find ${PREFIX}/var/db/pkg -name CONTENTS | while read file do COUNT=`cat "${file}" | grep -v "dir\|sym" | wc -l` [ ${COUNT} -eq 0 ] && continue NUM=0 cat "${file}" | while read line do case `echo ${line} | cut -d ' ' -f 1` in dir|sym) continue ;; obj) FILE=`echo ${line} | awk '{ print $2 }'` MTIME=`echo ${line} | awk '{ print $4 }'` ;; *) echo "Unknown type !!!" ;; esac FILE="${PREFIX}/${FILE}" [ ! -e "${FILE}" ] && continue DATE=`date -u -d "1970-01-01 ${MTIME} seconds" "+%Y%m%d%H%M.%S"` touch -m -t ${DATE} "${FILE}" NUM=$((NUM + 1)) PERCENT=$((100 * $NUM / $COUNT)) [ "${OLD_PERCENT}" != "${PERCENT}" ] && echo -ne "\r>>> Processing ${file} ... $PERCENT%\033[J" OLD_PERCENT=$PERCENT done done echo -ne "\r>>> All done.\033[J\n"