X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=videosite.git;a=blobdiff_plain;f=libvideosite.pm;h=f9959bfc5602ac7072f7c49398ca4ef8cef928d7;hp=e4e1878fb6ec9013cafb4f06492e7aeba5dc483f;hb=HEAD;hpb=f1950abbacdeb7e72c1303fc02d58d01b622e833 diff --git a/libvideosite.pm b/libvideosite.pm index e4e1878..f9959bf 100644 --- a/libvideosite.pm +++ b/libvideosite.pm @@ -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,9 +938,24 @@ sub _cmd_nodebug { } # +# Handle generic service commands +# +sub _cmd_service { + my $event = shift; + my $subcmd = shift || ''; + + $subcmd = lc($subcmd); + + if ($subcmd eq 'cache') { + _cmd_service_cache($event, @_); + } +} + + +# # Display or clear the content of the config cache # -sub _cmd_cache { +sub _cmd_service_cache { my $event = shift; my $subcmd = shift; @@ -950,8 +972,8 @@ sub _cmd_cache { } } } elsif ($subcmd eq 'clear') { - _debug("Clearing config cache"); %config_cache = (); + _io("Cache cleared"); } }