X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=buildd%2Fcleanup.sh;h=93457ab1c1fef97385819f327f830e80b13eb54a;hp=0a1e6200b63d245f53e440cbf592066dd1ccf2bc;hb=db5741b5b41210da401504a3493d9a284da32e9c;hpb=a090ad82e812624a5e67b957f5b50878b28b457e diff --git a/buildd/cleanup.sh b/buildd/cleanup.sh index 0a1e620..93457ab 100755 --- a/buildd/cleanup.sh +++ b/buildd/cleanup.sh @@ -4,39 +4,63 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2 or any later version. -# Latest change: Don Okt 18 00:32:36 CEST 2007 [mika] ################################################################################ set -e +dir="$(dirname $0)" + +if [ -r /etc/grml/grml-buildd.conf ] ; then + . /etc/grml/grml-buildd.conf +elif [ -r "${dir}/grml-buildd.conf" ] ; then + . "${dir}/grml-buildd.conf" +fi + +# directory where daily ISOs are stored locally +if [ -z "$MIRROR_DIRECTORY" ] ; then + echo "Error: \$MIRROR_DIRECTORY is not set. Exiting." >&2 + exit 1 +fi + +if [ -z "$FLAVOURS" ] ; then + echo "Error: \$FLAVOURS is not set. Exiting." >&2 + exit 2 +fi + +if ! cd "$MIRROR_DIRECTORY" ; then + echo "Error: could not change directory to $MIRROR_DIRECTORY" >&2 + exit 3 +fi + # we want to always keep a few images, no matter how old they are # but get rid of the oldest ones first of course :) -# so: how many images do we want to keep? +# so: how many images do we want to keep? DAYS=3 usually means 'keep 4 images' DAYS=3 REMOVE_ME="" -for flavour in grml-medium_etch grml-medium_sid grml64-medium_etch grml64-medium_sid grml64_sid grml_sid ; do - FILE_COUNT=$(ls -1 $flavour*.iso | wc -l) +for flavour in $FLAVOURS; do + FILE_COUNT=$(ls -1 $flavour/$flavour*.iso | wc -l) if [ "$FILE_COUNT" -gt "$DAYS" ] ; then - FILES=$(ls -1 $flavour*.iso | tail -"$DAYS") - OLD_FILES=$(ls $flavour*.iso | grep -v "$FILES") + FILES=$(ls -1 $flavour/$flavour*.iso | tail -"$DAYS") + OLD_FILES=$(ls $flavour/$flavour*.iso | grep -v "$FILES") for file in $OLD_FILES ; do REMOVE_ME="$REMOVE_ME $(find $file -mtime +$DAYS)" done fi done -[ -d .delete ] || mkdir .delete +[ -d .archive ] || mkdir .archive -# move them before we really delete them: for file in $REMOVE_ME ; do - test -f ${file} && mv $file .delete - test -f ${file}.md5 && mv ${file}.md5 .delete + test -f ${file} && rm -f $file + # ... but keep their md5sum / sha1sum: + test -f ${file}.md5 && mv ${file}.md5 .archive + test -f ${file}.sha1 && mv ${file}.sha1 .archive done # inform on successful removal: if [ "$(echo "$REMOVE_ME" | tr -d ' ' )" != "" ] ; then - echo "deleted files $REMOVE_ME" | mail -s "daily-builds cleanup script" root@localhost + echo "Removed previous files $REMOVE_ME" | logger -t grml-buildd fi ## END OF FILE #################################################################