[Koha-patches] [PATCH] Bug 6572: Script batch anonymisation wrapper
ruth at bywatersolutions.com
ruth at bywatersolutions.com
Sat Jul 9 18:52:15 CEST 2011
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.
---
misc/cronjobs/batch_anonymise.pl | 76 ++++++++++++++++++++++++++++++++++++++
1 files changed, 76 insertions(+), 0 deletions(-)
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 0000000..857171b
--- /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 <<USAGE;
+Usage: $0 --days DAYS [-h|--help]
+ --days DAYS (MANDATORY) anonymise patron history that is older than DAYS days.
+ -v --verbose gives a little more information
+ -h --help prints this help message, and exits, ignoring all
+ other options
+USAGE
+ exit $_[0];
+}
+
+my ( $help, $days, $verbose );
+
+GetOptions(
+ 'h|help' => \$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);
--
1.7.2.5
More information about the Koha-patches
mailing list