#!/usr/bin/perl -w use strict; use warnings FATAL => qw(all); use FindBin; use lib grep(-d , "$FindBin::Script.lib", "$FindBin::RealScript.lib" , "$FindBin::Bin/yatt.lib", "$FindBin::Bin/lib" , grep {defined} $ENV{YATT_LIB}); use File::Basename; use base qw(YATT::Toplevel::CGI); sub MY () { __PACKAGE__ } MY->parse_opts(\@ARGV, \ my %opts); MY->parse_params(\@ARGV, \ my %common); my $config = MY->new_config(%opts); my ($rootdir, $top) = do { my $file = $ARGV[0]; # Keep original. unless (defined $file and -r $file) { die "Usage: $0 file ?name=value ...?\n" } my $dir = dirname(MY->rel2abs($file)); $config->try_load_config($ENV{YATT_ROOTDIR} || $dir); # XXX: テンプレートディレクトリの指定も。 ($dir , MY->new_translator([DIR => $dir], $config->translator_param , mode => 'render' , debug_translator => $ENV{DEBUG})); }; { my $count; foreach my $file (@ARGV) { my $widget = $top->get_widget(MY->widget_path_in ($rootdir, MY->rel2abs($file))) or die "Can't find widget for $file"; $top->ensure_widget_is_generated($widget); if (my $script = $top->emit) { print 'use strict; use warnings FATAL => qw(all); ' unless $count++; print $script; } } }