--- messaging/manakai/bin/daf.pl 2006/05/19 11:02:11 1.14 +++ messaging/manakai/bin/daf.pl 2006/11/04 12:25:10 1.18 @@ -12,12 +12,19 @@ Util => q, }; +our$VERSION=do{my @r=(q$Revision: 1.18 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r}; use Cwd; use Getopt::Long; use Pod::Usage; -my %Opt = (create_module => []); +our %Opt = (create_module => []); my @target_modules; GetOptions ( + 'create-dtd-driver=s' => sub { + shift; + my $i = [split /\s+/, shift, 3]; + $i->[3] = 'dtd-driver'; + push @{$Opt{create_module}}, $i; + }, 'create-dtd-modules=s' => sub { shift; my $i = [split /\s+/, shift, 3]; @@ -43,12 +50,14 @@ 'daem-file-suffix=s' => \$Opt{daem_suffix}, 'dafs-file-suffix=s' => \$Opt{dafs_suffix}, 'dafx-file-suffix=s' => \$Opt{dafx_suffix}, + 'dtd-file-suffix=s' => \$Opt{dtd_suffix}, 'help' => \$Opt{help}, 'load-module=s' => sub { shift; my $i = [split /\s+/, shift, 2]; push @target_modules, [$i->[0], $i->[1]]; }, + 'mod-file-suffix=s' => \$Opt{mod_suffix}, 'search-path|I=s' => sub { shift; my @value = split /\s+/, shift; @@ -96,7 +105,8 @@ $Opt{daem_suffix} = '.dafm' unless defined $Opt{daem_suffix}; $Opt{dafx_suffix} = '.dafx' unless defined $Opt{dafx_suffix}; $Opt{dafs_suffix} = '.dafs' unless defined $Opt{dafs_suffix}; -$Message::DOM::DOMFeature::DEBUG = 1 if $Opt{debug}; +$Opt{dtd_suffix} = '.dtd' unless defined $Opt{dtd_suffix}; +$Opt{mod_suffix} = '.mod' unless defined $Opt{mod_suffix}; require Error; $Error::Debug = 1 if $Opt{debug}; $Message::Util::Error::VERBOSE = 1 if $Opt{verbose}; @@ -147,6 +157,10 @@ require 'manakai/daf-dtd-modules.pl'; $feature{ExpandedURI q} = '3.0'; $feature{'+' . ExpandedURI q} = '3.0'; + } elsif ($out_type eq 'dtd-driver') { + require 'manakai/daf-dtd-modules.pl'; + $feature{ExpandedURI q} = '3.0'; + $feature{'+' . ExpandedURI q} = '3.0'; } } @@ -259,7 +273,7 @@ status_msg_ " " if ($ResourceCount % (10 * 10)) == 0; status_msg '' if ($ResourceCount % (10 * 50)) == 0; } -}); +}, implementation => $impl); status_msg ''; status_msg "done"; @@ -308,6 +322,8 @@ daf_perl_t ($mod_uri, $out_file_path, $mod_for); } elsif ($out_type eq 'dtd-modules') { daf_dtd_modules ($mod_uri, $out_file_path, $mod_for); + } elsif ($out_type eq 'dtd-driver') { + daf_dtd_driver ($mod_uri, $out_file_path, $mod_for); } }