X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=buildd%2Fcleanup.sh;h=93457ab1c1fef97385819f327f830e80b13eb54a;hp=43d36cfc56688f147c4748bd26b61962ad00e924;hb=db5741b5b41210da401504a3493d9a284da32e9c;hpb=5e517c2dd8404f40f8c1439cedd07571df1a540c diff --git a/buildd/cleanup.sh b/buildd/cleanup.sh index 43d36cf..93457ab 100755 --- a/buildd/cleanup.sh +++ b/buildd/cleanup.sh @@ -1,50 +1,66 @@ #!/bin/sh -# Filename: /usr/share/grml-live/buildd/buildd/cleanup.sh +# Filename: cleanup.sh # Purpose: clean up daily builds directory - remove old files # 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: YDATE [mika] ################################################################################ set -e -. /etc/grml/grml-buildd.conf +dir="$(dirname $0)" -[ -n "$RECIPIENT" ] || RECIPIENT=root@localhost +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 -[ -n "$MIRROR_DIRECTORY" ] || exit 1 -cd $MIRROR_DIRECTORY || exit 2 +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-small_etch grml-small_sid grml-medium_etch grml-medium_sid grml_sid grml_etch \ - grml64-small_etch grml64-small_sid grml64-medium_etch grml64-medium_sid grml64_sid grml64_etch ; 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} && rm -f $file - test -f ${file}.md5 && mv ${file}.md5 .delete + # ... 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" $RECIPIENT + echo "Removed previous files $REMOVE_ME" | logger -t grml-buildd fi ## END OF FILE #################################################################