Bug 7994: scripts to check yaml files
authorClaire Hernandez <claire.hernandez@biblibre.com>
Mon, 23 Apr 2012 13:11:46 +0000 (15:11 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Wed, 20 Jun 2012 19:07:46 +0000 (21:07 +0200)
$ prove yaml_valid.t
checks a closed list of files
$ perl yaml_valid.pl -f myfile.yaml
try to load a yaml file with YAML::LoadFile and show errors

(both files pertidied)

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

xt/yaml_valid.pl [new file with mode: 0755]
xt/yaml_valid.t [new file with mode: 0755]

diff --git a/xt/yaml_valid.pl b/xt/yaml_valid.pl
new file mode 100755 (executable)
index 0000000..75e0ae7
--- /dev/null
@@ -0,0 +1,67 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2012 BibLibre
+#
+# 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 Modern::Perl;
+use Getopt::Long;
+use YAML;
+
+my $usage = <<EOF;
+yaml_valid.pl - give it a filename and it will told you if it is an exact yaml file.
+    -h|--help           Print this help and exit;
+    -f|--file           File to check
+
+  Tests yaml config files
+  It does not tell if the params are correct, only if the file is well-formed (ie: readable by yaml)
+EOF
+
+my $help = 0;
+my $file = 0;
+GetOptions(
+    "help"   => \$help,
+    "file=s" => \$file,
+) or die $usage;
+die $usage if $help;
+
+say "Testing file: $file";
+eval { YAML::LoadFile($file); };
+if ($@) {
+    print "KO!\n$@\n";
+}
+else {
+    print "Loading and Syntax OK\n";
+}
+
+#yaml_file_ok("$file", "$file is YAML");
+
+=head1 NAME
+
+yaml_valid.pl
+
+=head1 DESCRIPTION
+
+  Tests yaml config files
+  It does not tell if the params are correct, only if the file is well-formed (ie: readable by yaml)
+
+=head1 USAGE
+
+From Koha root directory:
+
+perl xt/yaml_valid.pl -f filename.yaml
+
+=cut
diff --git a/xt/yaml_valid.t b/xt/yaml_valid.t
new file mode 100755 (executable)
index 0000000..06618fc
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2012 BibLibre
+#
+# 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 Modern::Perl;
+use Test::YAML::Valid;
+use Data::Dumper;
+
+use Test::More;
+
+BEGIN {
+    use FindBin;
+    eval { require "$FindBin::Bin/../misc/kohalib.pl" };
+}
+
+my $filebase = "$FindBin::Bin/../koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences";
+
+my @files = `ls -1 $filebase`;
+
+plan tests => scalar @files;
+
+foreach my $f (@files) {
+    chomp $f;
+    yaml_file_ok( "$filebase/$f", "$f is YAML" );
+}
+
+
+=head1 NAME
+
+yaml_valid.t
+
+=head1 DESCRIPTION
+
+
+=head1 USAGE
+
+From everywhere:
+
+prove xt/yaml_valid.t
+
+=cut