summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorkris <kris@FreeBSD.org>2004-03-08 02:01:24 +0000
committerkris <kris@FreeBSD.org>2004-03-08 02:01:24 +0000
commit65530cea5ca32cd9c5f682ed35918b6fd82e8809 (patch)
tree8d2ab53e01b8f4e4145cfeb8bede371aff040097 /Tools
parent353c1d8e52d1dec726e52b822f0ed01a1b2c7b7f (diff)
downloadFreeBSD-ports-65530cea5ca32cd9c5f682ed35918b6fd82e8809.zip
FreeBSD-ports-65530cea5ca32cd9c5f682ed35918b6fd82e8809.tar.gz
Verify the archive integrity of a package set, and move aside any that
are found to be bad. Not currently in use, since we do not experience package corruption and this takes quite a while to run.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/portbuild/scripts/prunebad45
1 files changed, 45 insertions, 0 deletions
diff --git a/Tools/portbuild/scripts/prunebad b/Tools/portbuild/scripts/prunebad
new file mode 100644
index 0000000..ddcc709
--- /dev/null
+++ b/Tools/portbuild/scripts/prunebad
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# configurable variables
+pb=/var/portbuild
+
+if [ $# -ne 2 ]; then
+ echo "prunebad <arch> <branch>"
+ exit 1
+fi
+
+arch=$1
+branch=$2
+shift 2
+
+. ${pb}/${arch}/portbuild.conf
+. ${pb}/scripts/buildenv
+
+buildenv ${pb} ${arch} ${branch}
+
+cd ${pb}/${arch}/${branch}
+
+if [ -f .packagelock ]; then exit; fi
+touch .packagelock
+
+cd packages/All
+if [ ! -f .packagestamp ]; then
+ newfiles=$(find . -name \*${PKGSUFFIX})
+else
+ newfiles=$(find . -name \*${PKGSUFFIX} -newer ../../.packagestamp)
+fi
+touch ../../.packagestamp
+echo Checking $newfiles
+
+mkdir -p ${pb}/${arch}/${branch}/bad
+echo "checking packages"
+for i in ${newfiles}; do
+ if ! ${PKGZIPCMD} -t $i; then
+ echo "Warning: package $i is bad, moving to ${pb}/${arch}/${branch}/bad"
+ # the latest link will be left behind...
+ mv $i ${pb}/${arch}/${branch}/bad
+ rm ../*/$i
+ fi
+done
+cd ../..
+rm .packagelock \ No newline at end of file
OpenPOWER on IntegriCloud