From 39298cf09e2e88b1f6aec779170990675baf8992 Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Wed, 14 May 2008 18:49:20 -0400 Subject: Cron cleanup, and only copy DB files once This would break all adds if there were any deletes. We definitely don't want that. Also, cleanup of cron scripts in the same commit because I'm lazy Signed-off-by: Aaron Griffin --- misc-scripts/find-dupes | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 misc-scripts/find-dupes (limited to 'misc-scripts') diff --git a/misc-scripts/find-dupes b/misc-scripts/find-dupes new file mode 100755 index 0000000..82cd1a4 --- /dev/null +++ b/misc-scripts/find-dupes @@ -0,0 +1,77 @@ +#!/bin/bash + +if [ $# -ne 2 ]; then + echo "usage: $(basename $0) " + exit 1 +fi + +reponame=$1 +arch=$2 + +##### Arch specific stuff. TODO make this configurable ##### +ftppath="/home/ftp/$reponame/os/$arch/" +############################################################ + +if [ ! -d "$ftppath" ]; then + echo "FTP path '$ftppath' does not exist" + exit 1 +fi + +if [ ! -f /etc/makepkg.conf ]; then + echo "/etc/makepkg.conf not found! Aborting" + exit 1 +fi + +. /etc/makepkg.conf + +cd $ftppath + +# Get the package name from the filename +# hackish, but should work for now +getpkgname() { + local tmp + + tmp=${1##*/} + tmp=${tmp%$PKGEXT} + tmp=${tmp%-$CARCH} + echo ${tmp%-*-*} +} + +showdupes() { + done="" + for i in *.pkg.tar.gz; do + pkgname=$(getpkgname $i) + if [ "$pkgname" = "$1" ]; then + lastmod="$(stat -c %y $i | cut -d. -f1)" + fname="$(basename $i)" + + echo "$lastmod $fname" + + done=1 + else + if [ "$done" = "1" ]; then + return + fi + fi + done +} + +echo "Scanning for duplicate packages in '$reponame' ($arch)" +DUPES="" +lastpkg="" + +for pkg in *.pkg.tar.gz; do + pkgname="$(getpkgname $pkg)" + if [ "$lastpkg" = "$pkgname" ]; then + DUPES="$DUPES $pkgname" + fi + lastpkg=$pkgname +done + +if [ "$DUPES" ]; then + DUPES="$(echo $DUPES | sed 's| |\n|g' | sort -u)" + echo "Date Filename" + for dupe in $DUPES; do + showdupes $dupe + done +fi -- cgit v1.2.3-2-g168b