Add KALAMAR_PLUGINS environment variable

Change-Id: I05e39411c089bb6d6e24368314202340ebea17f6
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index d782dda..ffb5499 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -5,7 +5,7 @@
 use Mojo::File;
 use Mojo::JSON qw/decode_json encode_json/;
 use Mojo::Util qw/url_escape deprecated slugify/;
-use List::Util 'none';
+use List::Util qw!none uniq!;
 
 # Minor version - may be patched from package.json
 our $VERSION = '0.48';
@@ -288,11 +288,17 @@
     $self->plugin('MailException' => $self->config('MailException'));
   };
 
+  # Load plugins defined in environment variables
+  if ($ENV{'KALAMAR_PLUGINS'}) {
+    $conf->{'plugins'} //= [];
+    push @{$conf->{'plugins'}}, split(/\s*,\s*/, $ENV{'KALAMAR_PLUGINS'} // '');
+  };
+
   # Load further plugins,
   # that can override core functions,
   # therefore order may be of importance
   if (exists $conf->{'plugins'}) {
-    foreach (@{$conf->{'plugins'}}) {
+    foreach (uniq @{$conf->{'plugins'}}) {
       $self->plugin('Kalamar::Plugin::' . $_);
     };
   };
diff --git a/lib/Kalamar/Plugin/Piwik.pm b/lib/Kalamar/Plugin/Piwik.pm
index 70687ed..9f0db81 100644
--- a/lib/Kalamar/Plugin/Piwik.pm
+++ b/lib/Kalamar/Plugin/Piwik.pm
@@ -26,6 +26,8 @@
 
   my $url = $piwik_conf->{url};
 
+  return unless $url;
+
   $piwik_conf->{append} .= <<APPEND;
 ;window.addEventListener('korapRequest', function(e) {
     let _paq=window._paq=window._paq||[];