#!/bin/bash # $Id: genpkglist,v 1.13 2006/02/22 07:56:11 judd Exp $ # # genpkglist # # Generates a text package database for use with the setup script # (also used to check for missing packages in the download directory) # pkgfile="`pwd`/packages.txt" repodir=$1 rm -f $pkgfile for category in `find * -maxdepth 0 -type d | grep -v CVS`; do cd $category for pkg in `/bin/ls`; do cd $pkg if [ -f PKGBUILD ]; then . PKGBUILD if [ -f /home/ftp/$repodir/os/i686/$pkgname-$pkgver-$pkgrel.pkg.tar.gz ]; then echo "$category/$pkgname-$pkgver-$pkgrel.pkg.tar.gz" >>$pkgfile else echo "notice: Missing $pkgname-$pkgver-$pkgrel.pkg.tar.gz in ftp site" >&2 fi fi cd .. done cd .. done cd /home/ftp/$1/os/i686 unset DUPES DUPEFILES last for pkg in *.pkg.tar.gz; do pkgname=${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=${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 $1 (please 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