[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