move misc source file test and fix scripts to xt/
authorGalen Charlton <gmcharlt@gmail.com>
Thu, 6 May 2010 23:46:51 +0000 (19:46 -0400)
committerGalen Charlton <gmcharlt@gmail.com>
Thu, 6 May 2010 23:46:51 +0000 (19:46 -0400)
The license and non-UTF8 file checks are closer to
author tests and don't really belong at the top level of the
Koha source tree.  Follow-up might be to converted them
to test cases in xt/author that can be run by prove(1).

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
find-license-problems [deleted file]
find-nonutf8 [deleted file]
fix-old-fsf-address [deleted file]
fix-old-fsf-address.exclude [deleted file]
xt/find-license-problems [new file with mode: 0755]
xt/find-nonutf8 [new file with mode: 0755]
xt/fix-old-fsf-address [new file with mode: 0755]
xt/fix-old-fsf-address.exclude [new file with mode: 0644]

diff --git a/find-license-problems b/find-license-problems
deleted file mode 100755 (executable)
index d0c5c30..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/perl
-#
-# Find copyright and license problems in Koha source files. At this
-# time it only looks for references to the old FSF address in GPLv2
-# license notices, but it might in the future be extended to look for
-# other things, too.
-#
-# Copyright 2010 Catalyst IT Ltd
-#
-# This file is part of Koha.
-#
-# This program 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.
-#
-# This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-
-use strict;
-use warnings;
-
-use File::Find;
-
-
-my @files;
-sub wanted {
-    my $name = $File::Find::name;
-    push @files, $name
-        unless $name =~ /\/(\.git|koha-tmpl)(\/.*)?$/ ||
-               $name =~ /\.(gif|jpg|odt|ogg|pdf|png|po|psd|svg|swf|zip)$/ ||
-               ! -f $name;
-}
-
-
-sub has_gpl2plus_and_current_fsf_address {
-    my ($name) = @_;
-    my $hascopyright;
-    my $hasgpl;
-    my $hasv2;
-    my $hasorlater;
-    my $hasfranklinst;
-    open(FILE, $name) || return 0;
-    while (my $line = <FILE>) {
-        $hascopyright = 1 if ($line =~ /Copyright.*\d\d/);
-        $hasgpl = 1 if ($line =~ /GNU General Public License/);
-        $hasv2 = 1 if ($line =~ /either version 2/);
-        $hasorlater = 1 if ($line =~ /any later version/ ||
-                            $line =~ /at your option/);
-        $hasfranklinst = 1 if ($line =~ /51 Franklin Street/);
-    }
-    return ! $hascopyright ||
-           ($hasgpl && $hasv2 && $hasorlater && $hasfranklinst);
-}
-
-
-find({ wanted => \&wanted, no_chdir => 1 }, @ARGV);
-foreach my $name (@files) {
-    if (! has_gpl2plus_and_current_fsf_address($name)) {
-        print "$name\n";
-    }
-}
diff --git a/find-nonutf8 b/find-nonutf8
deleted file mode 100755 (executable)
index a6dd49d..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-#
-# Find Koha source files that are not in UTF-8. Non-textual files are ignored.
-# This script requires the isutf8 program from Joey Hess's moreutils package.
-# See <http://kitenet.net/~joey/code/moreutils/> for info.
-# 
-# Copyright 2010 Catalyst IT Ltd
-#
-# 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.
-
-set -e
-
-git ls-files |
-grep -Ev '\.(gif|jpg|png|pdf|ogg|psd|swf|odt|zip|ico|DS_Store|chr|dat)$' |
-while read filename
-do
-    if ! isutf8 -q "$filename" 
-    then
-        echo "$filename"
-    fi
-done
-
diff --git a/fix-old-fsf-address b/fix-old-fsf-address
deleted file mode 100755 (executable)
index c996287..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/perl
-#
-# Fix GPLv2 license blurbs that have the old FSF address at Temple Street,
-# instead of the Franklin Street one. Files to be fixed are read from
-# stdin. Typical usage would be:
-#
-#   ./find-license-problems . | 
-#   grep -vFx -f fix-old-fsf-address.exclude | 
-#   ./fix-old-fsf-address
-#
-# Copyright 2010 Catalyst IT Ltd
-#
-# This file is part of Koha.
-#
-# This program 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.
-#
-# This program 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 this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-
-use strict;
-use warnings;
-
-use File::Basename;
-use File::Copy;
-use File::Temp qw/ tempfile /;
-
-
-my $temple = << 'eof';
-You should have received a copy of the GNU General Public License along with
-Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-Suite 330, Boston, MA  02111-1307 USA
-eof
-
-my $franklin = << 'eof';
-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.
-eof
-
-
-my $temple2 = << 'eof';
-You should have received a copy of the GNU General Public License along with Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-Suite 330, Boston, MA  02111-1307 USA
-eof
-
-my $franklin2 = << 'eof';
-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.
-eof
-
-
-my $temple3 = << 'eof';
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 50 Temple Place, Suite 330, Boston, MA 02111-1307  USA
-eof
-
-my $franklin3 = << 'eof';
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software Foundation, Inc., 
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-eof
-
-
-my $temple4 = << 'eof';
-You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra.  If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
-eof
-
-my $franklin4 = << 'eof';
-You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra.  If not, write to the
-Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, 
-MA 02110-1301 USA.
-eof
-
-
-my @patterns = ($temple, $temple2, $temple3, $temple4);
-my @replacements = ($franklin, $franklin2, $franklin3, $franklin4);
-
-
-sub hashcomment {
-    my ($str) = @_;
-    my @lines = split /\n/, $str;
-    my @result;
-    foreach my $line (@lines) {
-        push @result, "# $line\n";
-    }
-    return join "", @result
-}
-
-
-sub dashcomment {
-    my ($str) = @_;
-    my @lines = split /\n/, $str;
-    my @result;
-    foreach my $line (@lines) {
-        push @result, "-- $line\n";
-    }
-    return join "", @result
-}
-
-
-sub readfile {
-    my ($filename) = @_;
-    open(FILE, $filename) || die("Can't open $filename for reading");
-    my @lines;
-    while (my $line = <FILE>) {
-        push @lines, $line;
-    }
-    close(FILE);
-    return join '', @lines;
-}
-
-
-sub try_to_fix {
-    my ($data, @patterns) = @_;
-    return undef;
-}
-
-
-sub overwrite {
-    my ($filename, $data) = @_;
-    my ($fh, $tempname) = tempfile(DIR => dirname($filename));
-    print $fh $data;
-    close($fh);
-    copy($tempname, $filename);
-    unlink($tempname);
-}
-
-
-sub fix_temple_street {
-    my ($filename) = @_;
-    my $data = readfile($filename);
-    my @pats = map { ($_, hashcomment($_), dashcomment($_)) } @patterns; 
-    my @repls = map { ($_, hashcomment($_), dashcomment($_)) } @replacements;
-    while (@pats) {
-        my $pat = shift @pats;
-        my $repl = shift @repls;
-        my $index = index($data, $pat);
-        next if $index == -1;
-        my $length = length($pat);
-        my $before = substr($data, 0, $index);
-        my $after = substr($data, $index + $length);
-        overwrite($filename, "$before$repl$after");
-        return;
-    }
-    die("Cannot find old address in $filename");
-}
-
-
-while (my $filename = <>) {
-    chomp $filename;
-    fix_temple_street($filename);
-}
diff --git a/fix-old-fsf-address.exclude b/fix-old-fsf-address.exclude
deleted file mode 100644 (file)
index 6925560..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-INSTALL.fedora7
-t/smolder_smoke_signal
-misc/cronjobs/check-url.pl
-misc/cronjobs/cloud-kw.pl
-misc/installer_devel_notes/data/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.sql
-misc/installer_devel_notes/data/en/marcflavour/marc21/optional/marc21_simple_bib_frameworks.sql
-koha-tmpl/
diff --git a/xt/find-license-problems b/xt/find-license-problems
new file mode 100755 (executable)
index 0000000..d0c5c30
--- /dev/null
@@ -0,0 +1,69 @@
+#!/usr/bin/perl
+#
+# Find copyright and license problems in Koha source files. At this
+# time it only looks for references to the old FSF address in GPLv2
+# license notices, but it might in the future be extended to look for
+# other things, too.
+#
+# Copyright 2010 Catalyst IT Ltd
+#
+# This file is part of Koha.
+#
+# This program 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.
+#
+# This program 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 this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+use strict;
+use warnings;
+
+use File::Find;
+
+
+my @files;
+sub wanted {
+    my $name = $File::Find::name;
+    push @files, $name
+        unless $name =~ /\/(\.git|koha-tmpl)(\/.*)?$/ ||
+               $name =~ /\.(gif|jpg|odt|ogg|pdf|png|po|psd|svg|swf|zip)$/ ||
+               ! -f $name;
+}
+
+
+sub has_gpl2plus_and_current_fsf_address {
+    my ($name) = @_;
+    my $hascopyright;
+    my $hasgpl;
+    my $hasv2;
+    my $hasorlater;
+    my $hasfranklinst;
+    open(FILE, $name) || return 0;
+    while (my $line = <FILE>) {
+        $hascopyright = 1 if ($line =~ /Copyright.*\d\d/);
+        $hasgpl = 1 if ($line =~ /GNU General Public License/);
+        $hasv2 = 1 if ($line =~ /either version 2/);
+        $hasorlater = 1 if ($line =~ /any later version/ ||
+                            $line =~ /at your option/);
+        $hasfranklinst = 1 if ($line =~ /51 Franklin Street/);
+    }
+    return ! $hascopyright ||
+           ($hasgpl && $hasv2 && $hasorlater && $hasfranklinst);
+}
+
+
+find({ wanted => \&wanted, no_chdir => 1 }, @ARGV);
+foreach my $name (@files) {
+    if (! has_gpl2plus_and_current_fsf_address($name)) {
+        print "$name\n";
+    }
+}
diff --git a/xt/find-nonutf8 b/xt/find-nonutf8
new file mode 100755 (executable)
index 0000000..a6dd49d
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+#
+# Find Koha source files that are not in UTF-8. Non-textual files are ignored.
+# This script requires the isutf8 program from Joey Hess's moreutils package.
+# See <http://kitenet.net/~joey/code/moreutils/> for info.
+# 
+# Copyright 2010 Catalyst IT Ltd
+#
+# 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.
+
+set -e
+
+git ls-files |
+grep -Ev '\.(gif|jpg|png|pdf|ogg|psd|swf|odt|zip|ico|DS_Store|chr|dat)$' |
+while read filename
+do
+    if ! isutf8 -q "$filename" 
+    then
+        echo "$filename"
+    fi
+done
+
diff --git a/xt/fix-old-fsf-address b/xt/fix-old-fsf-address
new file mode 100755 (executable)
index 0000000..6a67d8b
--- /dev/null
@@ -0,0 +1,167 @@
+#!/usr/bin/perl
+#
+# Fix GPLv2 license blurbs that have the old FSF address at Temple Street,
+# instead of the Franklin Street one. Files to be fixed are read from
+# stdin. Typical usage would be:
+#
+#   ./xt/find-license-problems . | 
+#   grep -vFx -f ./xt/fix-old-fsf-address.exclude | 
+#   ./xt/fix-old-fsf-address
+#
+# Copyright 2010 Catalyst IT Ltd
+#
+# This file is part of Koha.
+#
+# This program 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.
+#
+# This program 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 this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+
+use strict;
+use warnings;
+
+use File::Basename;
+use File::Copy;
+use File::Temp qw/ tempfile /;
+
+
+my $temple = << 'eof';
+You should have received a copy of the GNU General Public License along with
+Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+Suite 330, Boston, MA  02111-1307 USA
+eof
+
+my $franklin = << 'eof';
+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.
+eof
+
+
+my $temple2 = << 'eof';
+You should have received a copy of the GNU General Public License along with Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+Suite 330, Boston, MA  02111-1307 USA
+eof
+
+my $franklin2 = << 'eof';
+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.
+eof
+
+
+my $temple3 = << 'eof';
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 50 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+eof
+
+my $franklin3 = << 'eof';
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software Foundation, Inc., 
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+eof
+
+
+my $temple4 = << 'eof';
+You should have received a copy of the GNU General Public License
+along with Zebra; see the file LICENSE.zebra.  If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+eof
+
+my $franklin4 = << 'eof';
+You should have received a copy of the GNU General Public License
+along with Zebra; see the file LICENSE.zebra.  If not, write to the
+Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, 
+MA 02110-1301 USA.
+eof
+
+
+my @patterns = ($temple, $temple2, $temple3, $temple4);
+my @replacements = ($franklin, $franklin2, $franklin3, $franklin4);
+
+
+sub hashcomment {
+    my ($str) = @_;
+    my @lines = split /\n/, $str;
+    my @result;
+    foreach my $line (@lines) {
+        push @result, "# $line\n";
+    }
+    return join "", @result
+}
+
+
+sub dashcomment {
+    my ($str) = @_;
+    my @lines = split /\n/, $str;
+    my @result;
+    foreach my $line (@lines) {
+        push @result, "-- $line\n";
+    }
+    return join "", @result
+}
+
+
+sub readfile {
+    my ($filename) = @_;
+    open(FILE, $filename) || die("Can't open $filename for reading");
+    my @lines;
+    while (my $line = <FILE>) {
+        push @lines, $line;
+    }
+    close(FILE);
+    return join '', @lines;
+}
+
+
+sub try_to_fix {
+    my ($data, @patterns) = @_;
+    return undef;
+}
+
+
+sub overwrite {
+    my ($filename, $data) = @_;
+    my ($fh, $tempname) = tempfile(DIR => dirname($filename));
+    print $fh $data;
+    close($fh);
+    copy($tempname, $filename);
+    unlink($tempname);
+}
+
+
+sub fix_temple_street {
+    my ($filename) = @_;
+    my $data = readfile($filename);
+    my @pats = map { ($_, hashcomment($_), dashcomment($_)) } @patterns; 
+    my @repls = map { ($_, hashcomment($_), dashcomment($_)) } @replacements;
+    while (@pats) {
+        my $pat = shift @pats;
+        my $repl = shift @repls;
+        my $index = index($data, $pat);
+        next if $index == -1;
+        my $length = length($pat);
+        my $before = substr($data, 0, $index);
+        my $after = substr($data, $index + $length);
+        overwrite($filename, "$before$repl$after");
+        return;
+    }
+    die("Cannot find old address in $filename");
+}
+
+
+while (my $filename = <>) {
+    chomp $filename;
+    fix_temple_street($filename);
+}
diff --git a/xt/fix-old-fsf-address.exclude b/xt/fix-old-fsf-address.exclude
new file mode 100644 (file)
index 0000000..6925560
--- /dev/null
@@ -0,0 +1,7 @@
+INSTALL.fedora7
+t/smolder_smoke_signal
+misc/cronjobs/check-url.pl
+misc/cronjobs/cloud-kw.pl
+misc/installer_devel_notes/data/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.sql
+misc/installer_devel_notes/data/en/marcflavour/marc21/optional/marc21_simple_bib_frameworks.sql
+koha-tmpl/