Bug 23191: Add commandline script to install plugins
authorMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 24 Jun 2019 12:30:54 +0000 (13:30 +0100)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Tue, 25 Jun 2019 16:19:38 +0000 (17:19 +0100)
This adds an initial skeliton script to enable plugin installation at
the commandline.

Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

misc/devel/install_plugins.pl [new file with mode: 0755]

diff --git a/misc/devel/install_plugins.pl b/misc/devel/install_plugins.pl
new file mode 100755 (executable)
index 0000000..19ba68d
--- /dev/null
@@ -0,0 +1,87 @@
+#!/usr/bin/perl
+
+# This file is part of Koha.
+#
+# Copyright 2019 Koha Development Team
+#
+# 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 3 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, see <http://www.gnu.org/licenses>.
+
+use Modern::Perl;
+use Getopt::Long;
+use Pod::Usage;
+
+use Koha::Script;
+
+use C4::Context;
+use Koha::Plugins;
+
+my ($help);
+GetOptions( 'help|?' => \$help );
+
+pod2usage(1) if $help;
+
+my $plugins_enabled = C4::Context->preference('UseKohaPlugins')
+  && C4::Context->config("enable_plugins");
+unless ($plugins_enabled) {
+    print
+"The plugin system must be enabled for one to be able to install plugins\n";
+    exit 1;
+}
+
+my @plugins = Koha::Plugins->new()->InstallPlugins();
+
+unless (@plugins) {
+    my $plugins_dir = C4::Context->config("pluginsdir");
+    if ( ref($plugins_dir) eq 'ARRAY' ) {
+        print "No plugins found\n";
+        print "pluginsdir contains: \n" . join( '\n', @{$plugins_dir} );
+    }
+    else {
+        print "No plugins found at $plugins_dir\n";
+    }
+}
+
+for my $plugin (@plugins) {
+    print "Installed "
+      . $plugin->{metadata}->{name}
+      . " version "
+      . $plugin->{metadata}->{version} . "\n";
+}
+
+=head1 NAME
+
+install_plugins.pl - install all plugins found in plugins_dir
+
+=head1 SYNOPSIS
+
+ install_plugins.pl
+
+Options:
+  -?|--help        brief help message
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<--help|-?>
+
+Print a brief help message and exits
+
+=back
+
+=head1 DESCRIPTION
+
+A simple script to install plugins from the command line
+
+=cut