summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfukachan <fukachan>2004-11-20 02:17:04 +0000
committerfukachan <fukachan>2004-11-20 02:17:04 +0000
commit92dc67242cce0da5fc4a4682b8f7c7dc60409a22 (patch)
tree46a073ae777ea3d4575ba7987e9fdcf0a7da310c
parent39f048e40aed3f405e14d7c1651a636efcd75a4c (diff)
downloadfml8-92dc67242cce0da5fc4a4682b8f7c7dc60409a22.tar.gz
fml8-92dc67242cce0da5fc4a4682b8f7c7dc60409a22.tar.bz2
fml8-92dc67242cce0da5fc4a4682b8f7c7dc60409a22.zip
variable definition checker
-rwxr-xr-xregress/variable/definition_check.pl75
-rw-r--r--regress/variable/list.value108
2 files changed, 183 insertions, 0 deletions
diff --git a/regress/variable/definition_check.pl b/regress/variable/definition_check.pl
new file mode 100755
index 00000000..e5ca19f2
--- /dev/null
+++ b/regress/variable/definition_check.pl
@@ -0,0 +1,75 @@
+#!/usr/bin/env perl
+#
+# $FML$
+#
+
+use strict;
+use Carp;
+use File::Basename;
+use File::Spec;
+
+my $eval;
+my $value;
+my $base_dir = dirname($0);
+my $definition_file = File::Spec->catfile($base_dir, "list.value");
+my %val = ();
+
+_init();
+
+while (<>) {
+ if (/^\s*$/) {
+ $value = '';
+ }
+
+ if (/Value:\s+(\S+)/) {
+ $value = $1;
+ }
+
+ if (/^([_a-z]+)\s+=/) {
+ $val{ $1 } = $value;
+ }
+}
+
+my $i = 0;
+for my $k (sort keys %val) {
+ if (! _valid($k, $val{$k})) {
+ # printf "%-30s => %s\n", $k, $val{$k};
+ printf "%s\t%s\n", $k, $val{$k};
+ $i++;
+ }
+}
+
+print "\n$i left.\n\n";
+
+exit 0;
+
+
+sub _init
+{
+ use FileHandle;
+ my $rh = new FileHandle $definition_file;
+ if (defined $rh) {
+ while (<$rh>) {
+ next if /^\#/;
+ my ($k, $v) = split(/\s+/, $_);
+ if ($k && $v) {
+ $eval .= "if (\$k =~ /$k/ && \$v eq '$v') { \$r = 1;};\n";
+ }
+ }
+ }
+ else {
+ croak("cannot open $definition_file\n");
+ }
+}
+
+
+sub _valid
+{
+ my ($k, $v) = @_;
+ my $r = 0;
+
+ eval $eval;
+ croak($@) if $@;
+
+ return $r;
+}
diff --git a/regress/variable/list.value b/regress/variable/list.value
new file mode 100644
index 00000000..dc716785
--- /dev/null
+++ b/regress/variable/list.value
@@ -0,0 +1,108 @@
+^use_ YES_OR_NO
+^system_has_ YES_OR_NO
+
+_length$ NUM
+_size$ NUM
+_unit$ NUM
+_limit$ NUM
+_interval$ NUM
+_backlog$ NUM
+_location$ NUM
+_lifetime$ NUM
+
+_policy$ SELECT
+_type$ SELECT
+_charset$ SELECT
+_charset_\w{2}$ SELECT
+_subject_tag_location$ SELECT
+
+_functions$ MIX
+_restrictions$ MIX
+_rules$ MIX
+_config_list$ MIX
+_drivers$ MIX
+_select_list$ MIX
+
+_dir$ DIR
+_directories$ DIR_LIST
+
+_file$ FILE
+^path_ FILE
+_template_files$ FILE_LIST
+
+_map$ MAP
+_maps$ MAP_LIST
+
+_command_prefix$ FML_COMMAND
+_allowed_commands$ FML_COMMAND_LIST
+_options$ COMMAND_LINE_OPTIONS
+
+smtp_sender RFC822_ADDRESS
+maintainer RFC822_ADDRESS
+_address$ RFC822_ADDRESS
+list_addresses RFC822_ADDRESS_LIST
+verp_delimiters RFC822_ADDRESS_DELIMITERS
+
+_password$ PASSWORD
+
+_subject$ SUBJECT
+_subject_tag$ SUBJECT_TAG
+thread_id_syntax SUBJECT_TAG
+
+_timezone$ TIMEZONE
+
+_prompt$ PROMPT
+
+cgi.*color HTML_COLOR
+
+default_umask UMASK
+
+directory_default_mode FILE_MODE
+directory_private_mode FILE_MODE
+directory_public_mode FILE_MODE
+file_default_mode FILE_MODE
+
+
+_servers$ HOSTNAME_LIST
+_servers$ TRANSPORT_LIST
+
+
+
+#
+# SQL
+#
+sql_add SQL_STATEMENT
+sql_delete SQL_STATEMENT
+sql_find SQL_STATEMENT
+sql_get_next_key SQL_STATEMENT
+sql_getline SQL_STATEMENT
+
+
+#
+# SPECIAL
+#
+log_computer_output_engine CLASS
+error_mail_analyzer_cache_type CLASS
+error_mail_analyzer_cache_mode SELECT
+error_mail_analyzer_function SELECT
+article_summary_file_format_style SELECT
+cgi_default_language SELECT
+article_delivery_transport SELECT
+_filter_reject_notice_recipients MIX
+_function_select_list MIX
+language_preference_order MIX
+cgi_menu_default_address_map MIX
+system_special_accounts REGEXP_LIST
+unsafe_header_fields HEADER_FIELD_LIST
+log_format_type STR
+
+
+ldap_query_filter LDAP_QUERY_FILTER
+ldap_search_base LDAP_SEARCH_BASE
+ldap_server_bind LDAP_SEVERVER_BIND
+
+sql_database SQL_DATABASE
+sql_server HOSTNAME
+sql_table SQL_TABLE
+sql_user USER
+