X-Git-Url: https://git.camperquake.de/gitweb.cgi?p=videosite.git;a=blobdiff_plain;f=libvideosite.pm;h=f9959bfc5602ac7072f7c49398ca4ef8cef928d7;hp=3554201c814b7b05694bb2916960a326b4e94c2b;hb=HEAD;hpb=13d23a6f19e2f8192d894171aaecc7987044a72a diff --git a/libvideosite.pm b/libvideosite.pm index 3554201..f9959bf 100644 --- a/libvideosite.pm +++ b/libvideosite.pm @@ -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"); } }