Sorry guys, I sent the old version :( here is the right one: ------------------------8<--------------------8<--------------8<------- #!/bin/bash # repo-local-cleaner : delete old packages in local repo # # Copyright (c) 2007 Alessio 'mOLOk' Bolognino <themolok@gmail.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # USA. myver='3.0.0' source /etc/makepkg.conf # for $CARCH and $USE_COLOR # default settings: PKGEXT="pkg.tar.gz" LOCAL_REPO_DIR="/home/custompkgs" LOCAL_SRCROOT="/var/abs/local" LOCAL_REPO_NAME="custom" RUN_GENSYNC="n" if [ -r /etc/repo-local-cleaner.conf ]; then source /etc/repo-local-cleaner.conf fi msg() { if [ ! "$USE_COLOR" = "n" ]; then echo -e "\033[1;32m==>\033[1;0m \033[1;1m$1\033[1;0m" >&2 else echo "==> $1" >&2 fi } error() { if [ ! "$USE_COLOR" = "n" ]; then echo -e "\033[1;31m==> ERROR:\033[1;0m \033[1;1m$1\033[1;0m" >&2 else echo "==> ERROR: $1" >&2 fi } usage() { echo "repo-local-cleaner $myver" echo echo "usage: repo-local-cleaner" echo echo "repo-local-cleaner will delete old packages from the local repository." echo "If setted in the configuration file, it can run gensync." echo "It takes no options." echo } if [ $# -ne 0 -o "$1" = "-h" -o "$1" = "--help" ]; then usage exit 0 fi cd $LOCAL_REPO_DIR count_rm=0 count_all=0 mkdir -p XXX/ for pack in $(ls -v *-${CARCH}.${PKGEXT}) ; do pkgname=${pack%-*-*-${CARCH}.${PKGEXT}} if [ "$p_pkgname" = "$pkgname" ]; then mv ${p_pack} XXX/${p_pack} let count_rm++ fi let count_all++ p_pack=${pack} p_pkgname=${pkgname} done size_removed=$(ls -sh1 XXX/ | awk '{ print $2 }' | head -1) msg "Checking for old packages..." if [ "$count_rm" = "0" ]; then msg "No package removed" else msg "Removed $count_rm/$count_all old package(s) ( - ${size_removed} )" fi rm -fr XXX/ if [ ! "$RUN_GENSYNC" = "n" ]; then msg "Running gensync..." gensync $LOCAL_SRCROOT $LOCAL_REPO_DIR/$LOCAL_REPO_NAME.db.tar.gz $LOCAL_REPO_DIR/ if [ "$?" = "0" ]; then msg "done!" else error "gensync failed :(" fi fi # vim: set ts=2 sw=2 noet: ------------------------8<--------------------8<--------------8<------- Cheers, -- Alessio 'mOLOk' Bolognino Arch Linux Trusted User http://www.archlinux.org