diff options
Diffstat (limited to 'cleaner.in')
-rwxr-xr-x | cleaner.in | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/cleaner.in b/cleaner.in deleted file mode 100755 index 1db87c1..0000000 --- a/cleaner.in +++ /dev/null @@ -1,117 +0,0 @@ -#! /bin/sh -# This file is part of BEAM -# Copyright (C) 2012-2014 Sergey Poznyakoff -# -# BEAM 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 3, or (at your option) -# any later version. -# -# BEAM 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 BEAM. If not, see <http://www.gnu.org/licenses/>. - -libdir=@LIBDIR@/beam -set -e -. $libdir/common.sh -set +e - -dir= -suffix= -retainweeks=3 -dry_run= -verbose=: - -help() { - cat <<EOF -usage: $0 [OPTIONS] DIR -cleans up old backup files in DIR - -OPTIONS are: - -s, --suffix SUF consider only file names ending in SUF - -r, --retain N retain N last weeks of backups (default $retainweeks) - -v, --verbose verbosely list what is being done - -n, --dry-run do nothing, print what would have been done - -h, --help print this help list - -EOF - exit 0 -} - -while [ $# -ne 0 ] -do - case $1 in - -s|--suffix) shift; suffix=$1;; - -r|--retain) shift; retainweeks=$1;; - -v|--verbose) verbose=echo;; - -n|--dry-run) dry_run=echo; verbose=echo;; - -h|--help) help;; - --wtf) wtf $(basename $0) clean up old files; exit 0;; - --) shift; break;; - -*) echo >&2 "$0: unrecognized option $1" - exit 1;; - *) break - esac - shift -done - -case $# in - 0) echo >&2 "$0: not enough arguments" - exit 1;; - 1) dir=$1;; - *) echo >&2 "$0: too many arguments" - exit 1;; -esac - -remote=${dir%%:*} -if [ "$remote" != "$dir" ]; then - beam_rsh="${backup_rsh:-ssh} $remote" - localdir=${dir#*:} -else - beam_rsh= - localdir=$dir -fi - -thisweek=$(date +%U) - -# Warning: do not use shell arithmetic expansions on week numbers, -# because weeks prior to 10 begin with 0 and therefore are processed -# as octal numbers. This causes grief for weeks 08 and 09. -if [ $thisweek -gt $retainweeks ]; then - lastweek=$(expr $thisweek - $retainweeks) -else - lastweek=$(expr $thisweek + 54 - $retainweeks) -fi - -$verbose \# removing from $dir files ending in $suffix and older than week $lastweek - -if [ -z "$suffix" ]; then - beam_exec find $localdir -maxdepth 1 -type f -printf '%f>n' -else - beam_exec find $localdir -maxdepth 1 -type f -name "*$suffix" -printf '%f>n' -fi | - while read name - do - week=$(expr "$name" : '.*-\([0-9][0-9]*\)-[0-9][0-9]*-[0-9][0-9]*.*$') - if [ $thisweek -ge $week ]; then - if [ $(expr $thisweek - $week) -gt $retainweeks ]; then - echo $localdir/$name - fi - else - if [ $(expr $thisweek + 54 - $week) -gt $retainweeks ]; then - echo $localdir/$name - fi - fi - done | - if [ -z "$dry_run" ]; then - beam_exec xargs --no-run-if-empty rm - else - while read name - do - echo \# rm $name - done - fi |