aboutsummaryrefslogtreecommitdiff
path: root/cleaner.in
diff options
context:
space:
mode:
Diffstat (limited to 'cleaner.in')
-rwxr-xr-xcleaner.in117
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

Return to:

Send suggestions and report system problems to the System administrator.