From 29a77254307e42ba0959fe7660aa3d0d76285e6a Mon Sep 17 00:00:00 2001 From: Thomas Bächler Date: Sat, 16 Feb 2008 13:50:25 +0100 Subject: Commited cleanup script to db-inc/genpkglist --- cleanup-scripts/cleanup.sh | 53 ------------------------------------------ db-inc | 2 ++ ftpdir-cleanup | 57 ++++++++++++++++++++++++++++++++++++++++++++++ genpkglist | 33 --------------------------- 4 files changed, 59 insertions(+), 86 deletions(-) delete mode 100755 cleanup-scripts/cleanup.sh create mode 100755 ftpdir-cleanup diff --git a/cleanup-scripts/cleanup.sh b/cleanup-scripts/cleanup.sh deleted file mode 100755 index cdb0cef..0000000 --- a/cleanup-scripts/cleanup.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -usage() { - echo "Usage: $0 repo architecture" -} - -getpkgname() { - local tmp - - tmp=${1##*/} - tmp=${tmp%.pkg.tar.gz} - tmp=${tmp%-i686} - tmp=${tmp%-x86_64} - echo ${tmp%-*-*} -} - -FTPBASEDIR="/home/ftp" -FTPDIR=${FTPBASEDIR}/${1}/os/${2} -DBFILE=${FTPDIR}/${1}.db.tar.gz -MISSINGFILES="" -DELETEFILES="" - -if [ $# -lt 2 -o ! -f ${DBFILE} ]; then - usage - exit 1 -fi - -TMPDIR=$(mktemp -d /tmp/cleanup.XXXXXX) || exit 1 - -cd ${TMPDIR} -tar xzf ${DBFILE} -for pkg in *; do - filename=$(grep -A1 '^%FILENAME%$' ${pkg}/desc | tail -n1) - [ -z "${filename}" ] && filename="${pkg}.pkg.tar.gz" - if [ ! -f ${FTPDIR}/${filename} ]; then - MISSINGFILES="${MISSINGFILES} ${filename}" - else - pkgname="$(getpkgname ${filename})" - for otherfile in ${FTPDIR}/${pkgname}-*; do - otherfile="$(basename ${otherfile})" - if [ "${otherfile}" != "${filename}" -a "${pkgname}" = "$(getpkgname ${otherfile})" ]; then - DELETEFILES="${DELETEFILES} ${otherfile}" - fi - done - fi -done - -cd - >/dev/null -rm -rf ${TMPDIR} - -echo -ne "DIRECTORY:\n${FTPDIR}\n\n" -echo -ne "DELETEFILES:\n${DELETEFILES}\n\n" -echo -ne "MISSINGFILES:\n${MISSINGFILES}\n\n" diff --git a/db-inc b/db-inc index 32fc9f1..e86f87f 100644 --- a/db-inc +++ b/db-inc @@ -167,6 +167,8 @@ if [ "$updatelists" ]; then fi fi +$ARCHDIR/ftpdir-cleanup $reponame $arch + cleanup # vim: set ts=2 noet ft=sh: diff --git a/ftpdir-cleanup b/ftpdir-cleanup new file mode 100755 index 0000000..df400bd --- /dev/null +++ b/ftpdir-cleanup @@ -0,0 +1,57 @@ +#!/bin/bash + +usage() { + echo "Usage: $0 repo architecture" +} + +getpkgname() { + local tmp + + tmp=${1##*/} + tmp=${tmp%.pkg.tar.gz} + tmp=${tmp%-i686} + tmp=${tmp%-x86_64} + echo ${tmp%-*-*} +} + +FTPBASEDIR="/home/ftp" +FTPDIR=${FTPBASEDIR}/${1}/os/${2} +DBFILE=${FTPDIR}/${1}.db.tar.gz +MISSINGFILES="" +DELETEFILES="" + +if [ $# -lt 2 -o ! -f ${DBFILE} ]; then + usage + exit 1 +fi + +TMPDIR=$(mktemp -d /tmp/cleanup.XXXXXX) || exit 1 + +cd ${TMPDIR} +tar xzf ${DBFILE} +for pkg in *; do + filename=$(grep -A1 '^%FILENAME%$' ${pkg}/desc | tail -n1) + [ -z "${filename}" ] && filename="${pkg}.pkg.tar.gz" + if [ ! -f ${FTPDIR}/${filename} ]; then + MISSINGFILES="${MISSINGFILES} ${filename}" + else + pkgname="$(getpkgname ${filename})" + for otherfile in ${FTPDIR}/${pkgname}-*; do + otherfile="$(basename ${otherfile})" + if [ "${otherfile}" != "${filename}" -a "${pkgname}" = "$(getpkgname ${otherfile})" ]; then + DELETEFILES="${DELETEFILES} ${otherfile}" + fi + done + fi +done + +cd - >/dev/null +rm -rf ${TMPDIR} + +echo -ne "DIRECTORY:\n${FTPDIR}\n\n" +echo -ne "DELETEFILES:\n${DELETEFILES}\n\n" +echo -ne "MISSINGFILES:\n${MISSINGFILES}\n\n" + +cd ${FTPDIR} +mv ${DELETEFILES} /home/package-cleanup/ +cd - diff --git a/genpkglist b/genpkglist index ed91b0c..d026916 100755 --- a/genpkglist +++ b/genpkglist @@ -41,36 +41,3 @@ for category in `find * -maxdepth 0 -type d | grep -v CVS`; do done cd .. done - -cd $ftppath -unset DUPES DUPEFILES last -for pkg in *.pkg.tar.gz; do - pkgname=$(getpkgname $pkg) - if [ "$last" = "$pkgname" ]; then - DUPES="$DUPES $pkgname" - DUPEFILES="$DUPEFILES $pkg" - fi - last=$pkgname -done - -showdupes() { - done= - for i in *.pkg.tar.gz; do - pkgname=$(getpkgname $i) - if [ "$pkgname" = "$1" ]; then - ls -l $i | awk '{print $6" "$7" "$8" "$9}' - done=1 - else - [ "$done" = "1" ] && return - fi - done -} - -if [ "$DUPES" ]; then - echo "Possible Dupes for $ftppath (remove old versions)" - echo "Date Filename" - for dupe in $((for d in `echo $DUPES`; do echo $d; done) | sort -u); do - showdupes $dupe - done -fi - -- cgit v1.2.3-24-g4f1b