diff src/config/settings-get.pl @ 10179:afe52d60989c HEAD

Moved default service settings from master.conf to source code.
author Timo Sirainen <tss@iki.fi>
date Fri, 23 Oct 2009 21:47:30 -0400
parents d589d568a19d
children 4dc080520769
line wrap: on
line diff
--- a/src/config/settings-get.pl	Fri Oct 23 20:11:59 2009 -0400
+++ b/src/config/settings-get.pl	Fri Oct 23 21:47:30 2009 -0400
@@ -10,7 +10,9 @@
 print '#include <stddef.h>'."\n";
 print '#include <unistd.h>'."\n";
 print '#define CONFIG_BINARY'."\n";
+print 'extern buffer_t config_all_services_buf;';
 
+my @services = ();
 my %parsers = {};
 
 foreach my $file (@ARGV) {
@@ -31,6 +33,9 @@
 	  /struct setting_define.*{/ ||
 	  /struct .*_default_settings = {/) {
 	$state++;
+      } elsif (/^struct service_settings (.*) = {/) {
+	$state++;
+	push @services, $1;
       } elsif (/^(static )?const struct setting_parser_info (.*) = {/) {
 	$cur_name = $2;
 	$state++ if ($cur_name !~ /^\*default_/);
@@ -90,6 +95,16 @@
   close $f;
 }
 
+print "static struct service_settings *config_all_services[] = {\n";
+
+foreach my $name (@services) {
+  print "\t&$name,\n";
+}
+print "};\n";
+print "buffer_t config_all_services_buf = {\n";
+print "\tconfig_all_services, sizeof(config_all_services), { 0, }\n";
+print "};\n";
+
 print "const struct setting_parser_info *all_roots[] = {\n";
 foreach my $name (keys %parsers) {
   my $module = $parsers{$name};