fix quoting in AsyncWgetFileGetter again
[videosite.git] / libvideosite.pm
index 3554201..f9959bf 100644 (file)
@@ -34,7 +34,7 @@ my $getter;
 my %builtin_config = ();
 my $builtin_config_path;
 my $builtin_config_default;
-my $config_cache = 0;
+my $config_cache = 1;
 my %config_cache = ();
 our $error;
 
@@ -52,7 +52,12 @@ my $defaultconfig = {
             'name' => 'direct',
             '_immutable' => '1',
             'schemas' => {},
-        }
+        },
+        'environment' => {
+            'name' => 'environment',
+            '_immutable' => '1',
+            'schemas' => {},
+        },
     },
     'config-version' => '2',
 };
@@ -73,6 +78,7 @@ my $remote_api = {
     module_path => sub { return dirname(realpath($0)) },
     quote => sub { return $_ },
     reload => sub {},
+    wait_for_child => sub {},
 };
 
 #
@@ -86,7 +92,7 @@ my $videosite_commands = {
     'set' => sub {
         _cmd_set(@_);
     },
-    
+
     'show' => sub {
         _cmd_show(@_);
     },
@@ -127,8 +133,8 @@ my $videosite_commands = {
         _cmd_nodebug(@_);
     },
 
-    'cache' => sub {
-        _cmd_cache(@_);
+    'service' => sub {
+        _cmd_service(@_);
     },
 };
 
@@ -271,6 +277,7 @@ sub _ploader {
                 config_get => \&_config_get,
                 config_set => \&_config_set,
                 config_has => \&_config_has,
+               wait_for_child => $remote_api->{wait_for_child},
             });
         } else {
             _io('%s has wrong type (got %s, expected %s)', $p, $g->{'TYPE'}, $type);
@@ -279,7 +286,7 @@ sub _ploader {
     }
 
     _debug("Loaded %d plugins", $#g+1);
-    
+
     return @g;
 }
 
@@ -385,7 +392,7 @@ sub _config_list_add {
     _config_set($path, join(',', @c));
 }
 
-# 
+#
 # Remove an item from the list
 #
 sub _config_list_del {
@@ -931,14 +938,42 @@ sub _cmd_nodebug {
 }
 
 #
-# Display the content of the config cache
+# Handle generic service commands
 #
-sub _cmd_cache {
+sub _cmd_service {
     my $event = shift;
+    my $subcmd = shift || '';
+
+    $subcmd = lc($subcmd);
+
+    if ($subcmd eq 'cache') {
+        _cmd_service_cache($event, @_);
+    }
+}
+
 
-    _io("Content of config cache:");
-    foreach (sort(keys(%config_cache))) {
-        _io("%s => %s", $_, Dumper($config_cache{$_}));
+#
+# Display or clear the content of the config cache
+#
+sub _cmd_service_cache {
+    my $event = shift;
+    my $subcmd = shift;
+
+    $subcmd = 'list' unless defined($subcmd);
+    $subcmd = lc($subcmd);
+
+    if ($subcmd eq 'list') {
+        _io("Content of config cache:");
+        foreach (sort(keys(%config_cache))) {
+            if (exists($config_cache{$_}->{value})) {
+                _io(" %s => %s", $_, $config_cache{$_}->{value});
+            } else {
+                _io(" %s present", $_);
+            }
+        }
+    } elsif ($subcmd eq 'clear') {
+        %config_cache = ();
+        _io("Cache cleared");
     }
 }