diff --git a/misc/admin/koha-preferences b/misc/admin/koha-preferences index 11cbc42dc7..1cb866f5ba 100755 --- a/misc/admin/koha-preferences +++ b/misc/admin/koha-preferences @@ -19,19 +19,16 @@ # use Modern::Perl; -use Koha::Script; -use C4::Context; -use C4::Log; use Getopt::Long; use Pod::Usage; use YAML::XS; -use Koha::Logger; - use Koha::Database; our %NOT_SET_PREFS = map { $_, 1 } qw( Version ); +my $lazy_loaded; + =head1 NAME koha-preferences - Get, set, dump and load Koha system preferences @@ -42,6 +39,21 @@ misc/admin/koha-preferences COMMAND ... =cut +sub _lazy_load_modules { + if (!$lazy_loaded){ + #NOTE: "use" runs at compile time, so require/import() must be used instead + require Koha::Script; + Koha::Script->import(); + require C4::Context; + C4::Context->import(); + require C4::Log; + C4::Log->import; + require Koha::Logger; + Koha::Logger->import; + $lazy_loaded = 1; + } +} + sub print_usage { my ( $annoyed ) = @_; @@ -215,6 +227,7 @@ my %commands = ( }, load => sub { my ( $infile, $force_version ); + _lazy_load_modules(); GetOptions( 'i:s' => \$infile, @@ -246,6 +259,7 @@ my %commands = ( }, set => sub { my ( $preference, $value ) = @_; + _lazy_load_modules(); print_usage() unless ( $preference && defined($value) ); @@ -253,6 +267,7 @@ my %commands = ( }, clear => sub { my ( $preference ) = @_; + _lazy_load_modules(); print_usage() unless ( $preference );