]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix website config display of default settings
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 6 Oct 2012 02:26:32 +0000 (20:26 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 6 Oct 2012 02:26:32 +0000 (20:26 -0600)
The website page cfgman builder script was omitted when adding the
DEFAULT_DOC parameter and making DEFAULT / DEFAULT_IF_NONE support
multi-line values.

scripts/www/build-cfg-help.pl

index 075ab0ec24e7ab539ff88b8aa9f86aa281da6d6d..fac1e49dfa53add237de420469d2c6a1ee4549b3 100755 (executable)
@@ -19,9 +19,10 @@ use File::Basename;
 # NAME: <name>
 # IFDEF: <the ifdef bit>
 # TYPE: <the config type>
-# DEFAULT: <the default value>
-# DEFAULT_IF_NONE: <alternative default value>
 # LOC: <location in the Config struct>
+# DEFAULT: <the default value(s) - may be multiple lines>
+# DEFAULT_IF_NONE: <alternative default value>
+# DEFAULT_DOC: <the text to display instead of default value(s)>
 # DOC_START
 #   documentation goes here
 # NOCOMMENT_START
@@ -225,6 +226,22 @@ sub section_heading($)
        print $index $comment;
        print $index "</pre>\n";
 }
+sub update_defaults()
+{
+       if (defined($data->{"default_doc"})) {
+               # default text description masks out the default value display
+               if($data->{"default_doc"} ne "") {
+                       print "REPLACE: default '". $data->{"default"} ."' with '" . $data->{"default_doc"} . "'\n" if $verbose;
+                       $data->{"default"} = $data->{"default_doc"};
+               }
+       }
+       # when we have no predefined default use the DEFAULT_IF_NONE
+       if (defined($data->{"default_if_none"})) {
+               print "REPLACE: default '". $data->{"default"} ."' with '" . $data->{"default_if_none"} . "'\n" if $verbose && $data->{"default"} eq "";
+               $data->{"default"} = $data->{"default_if_none"} if $data->{"default"} eq "";
+       }
+}
+
 while (<>) {
        chomp;
        last if (/^EOF$/);
@@ -241,8 +258,12 @@ while (<>) {
                $option{$name} = $data;
                $data->{'name'} = $name;
                $data->{'aliases'} = \@aliases;
+               $data->{'default'} = "";
+               $data->{'default_doc'} = "";
+               $data->{'default_if_none'} = "";
 
                print "DEBUG: new option: $name\n" if $verbose;
+               next;
        } elsif ($_ =~ /^COMMENT: (.*)$/) {
                $data->{"comment"} = $1;
        } elsif ($_ =~ /^TYPE: (.*)$/) {
@@ -250,16 +271,19 @@ while (<>) {
                start_option($data->{"name"}, $data->{"type"});
        } elsif ($_ =~ /^DEFAULT: (.*)$/) {
                if ($1 eq "none") {
-                   $data->{"default"} = "$1";
+                   $data->{"default"} = "$1\n";
                } else {
-                   $data->{"default"} = "$name $1";
+                   $data->{"default"} .= "$name $1\n";
                }
+       } elsif ($_ =~ /^DEFAULT_DOC: (.*)$/) {
+               $data->{"default_doc"} .= "$1\n";
        } elsif ($_ =~ /^DEFAULT_IF_NONE: (.*)$/) {
-               $data->{"default"} = "$name $1";
+               $data->{"default_if_none"} .= "$1\n";
        } elsif ($_ =~ /^LOC:(.*)$/) {
                $data->{"loc"} = $1;
                $data->{"loc"} =~ s/^[\s\t]*//;
        } elsif ($_ =~ /^DOC_START$/) {
+               update_defaults;
                $state = "doc";
        } elsif ($_ =~ /^DOC_END$/) {
                $state = "";
@@ -269,11 +293,10 @@ while (<>) {
                }
                undef @chained;
        } elsif ($_ =~ /^DOC_NONE$/) {
+               update_defaults;
                push(@chained, $name);
        } elsif ($_ =~ /^NOCOMMENT_START$/) {
                $state = "nocomment";
-       } elsif ($_ =~ /^DEFAULT_IF_NONE: (.*)$/) {
-               $data->{"default_if_none"} = $1;
        } elsif ($_ =~ /^NOCOMMENT_END$/) {
                $state = "";
        } elsif ($_ =~ /^IFDEF: (.*)$/) {