From 885f016394a4cf00ccf3c8b0951883b453e2bcc3 Mon Sep 17 00:00:00 2001 From: D Ruth Bavousett Date: Sat, 9 Jul 2011 12:50:06 -0400 Subject: [PATCH] Bug 6572: Script batch anonymisation wrapper This little script, given a --days numeric parameter, will anonymise checkouts before that many days ago. Useful for sites that want to automatically do this on a periodic (cronnable) basis. Signed-off-by: Ian Walls Signed-off-by: Chris Cormack --- misc/cronjobs/batch_anonymise.pl | 76 ++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 misc/cronjobs/batch_anonymise.pl diff --git a/misc/cronjobs/batch_anonymise.pl b/misc/cronjobs/batch_anonymise.pl new file mode 100755 index 0000000000..857171b968 --- /dev/null +++ b/misc/cronjobs/batch_anonymise.pl @@ -0,0 +1,76 @@ +#!/usr/bin/perl + +# Copyright 2011, ByWater Solutions. +# +# This file is part of Koha. +# +# Koha 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. +# +# Koha 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 Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use strict; +use warnings; + +BEGIN { + + # find Koha's Perl modules + # test carefully before changing this + use FindBin; + eval { require "$FindBin::Bin/../kohalib.pl" }; +} + +use C4::Context; +use C4::Circulation; +use C4::Dates; +use Date::Calc qw( + Today + Add_Delta_Days +); +use Getopt::Long; + +sub usage { + print STDERR < \$help, + 'days:i' => \$days, + 'v|verbose' => \$verbose, +) || usage(1); + +if ($help) { + usage(0); +} + +if ( !$days ) { + print "The days parameter is mandatory.\n\n"; + usage(1); +} + +my ($year,$month,$day) = Today(); +my ($newyear,$newmonth,$newday) = Add_Delta_Days ($year,$month,$day,(-1)*$days); +my $formatdate = sprintf "%4d-%02d-%02d",$newyear,$newmonth,$newday; +$verbose and print "Checkouts before $formatdate will be anonymised.\n"; + +my $rows = AnonymiseIssueHistory($formatdate); +$verbose and print "$rows checkouts anonymised.\n"; + +exit(0); -- 2.20.1