From 7ad6810d7f5153a69453649a775f57cd470e9187 Mon Sep 17 00:00:00 2001 From: Dmitry Maksyoma Date: Tue, 2 Nov 2021 20:09:27 +1300 Subject: [PATCH] vncserver YAML config: support true and false values --- unix/vncserver | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/unix/vncserver b/unix/vncserver index 18a8d88..1444fd4 100755 --- a/unix/vncserver +++ b/unix/vncserver @@ -1117,12 +1117,9 @@ sub DefineFilePathsAndStuff { DetectFontPath(); - %configToXvncArgsMap = ( interface => "-interface" ); - $configToXvncArgsMap{dlp}{clipboard}{max_paste_size} = '-MaxCutText'; - $configToXvncArgsMap{pointer}{allow_clicks_and_cursor_movement} = - '-AcceptPointerEvents'; - - %xvncArgsToConfigAliases = (); + %xvncArgsToConfigAliases = ( + '-AcceptPointerEvents' => [qw(pointer.allow_clicks_and_cursor_movement)] + ); $xvncArgsToConfigAliases{'-MaxCutText'} = [qw(dlp.clipboard.max_paste_size dlp.clipboard.delay)]; $xvncArgsToConfigAliases{'-httpd'} = [qw(httpd_directory)]; } @@ -1291,27 +1288,41 @@ sub LoadYAMLConfig { } sub ConvertConfigToXvncArgs { - # my $result = ""; + my $result = ""; foreach my $cliArg (keys %xvncArgsToConfigAliases) { - ComplementCliArgWithValue($cliArg); + my $xvncCliArgWithValue = ComplementCliArgWithValue($cliArg); + next unless defined($xvncCliArgWithValue); + + $result .= " $xvncCliArgWithValue"; } - exit; - # $result .= " $key $value"; + $result; } sub ComplementCliArgWithValue { my $cliArg = $_[0]; my $firstDefinedConfigKey = FirstDefinedConfigKey($cliArg); + return unless defined($firstDefinedConfigKey); + my $cliValue = ConfigValue($firstDefinedConfigKey); - if ($cliValue eq "default") { - say "default value for $cliArg, skipping"; - next; + return unless defined($cliValue); + + switch($cliValue) { + case "default" { + say "default value for $cliArg, skipping"; + next; + } + case "true" { + $cliValue = "1"; + } + case "false" { + $cliValue = "0"; + } } - say "$cliArg $cliValue"; + "$cliArg $cliValue"; } sub FirstDefinedConfigKey {