Changeset 23603 for lang/perl/MENTA

Show
Ignore:
Timestamp:
11/14/08 07:35:40 (5 years ago)
Author:
tokuhirom
Message:

グローバル変数ツカウノヤメ。

Location:
lang/perl/MENTA/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/MENTA/trunk/bin/menta.pl

    r23341 r23603  
    88binmode STDOUT, ':utf8'; 
    99 
    10 MENTA::Builder->run; 
     10MENTA::Builder->run( 'app' => 'out' ); 
    1111 
  • lang/perl/MENTA/trunk/lib/MENTA/Builder.pm

    r23602 r23603  
    22use MENTA; 
    33use MENTA::Template; 
    4  
    5 my $OUTPUT_DIR = 'out'; 
    6 my $SOURCE_DIR = 'app'; 
    74 
    85{ 
     
    1512 
    1613sub run { 
     14    my ($class, $srcdir, $outdir) = @_; 
     15 
    1716    puts "出力先ディレクトリを作成します"; 
    18     mkdir $OUTPUT_DIR unless -d $OUTPUT_DIR; 
     17    mkdir $outdir unless -d $outdir; 
    1918    my $mode = 755; #TODO 
    2019    puts "chmod $mode"; 
    21     chmod oct($mode), $OUTPUT_DIR; 
     20    chmod oct($mode), $outdir; 
    2221 
    2322    puts "メインソースをコンパイルします"; 
    24     generate_cgi(); 
     23    generate_cgi($srcdir => $outdir); 
    2524 
    2625    puts "テンプレートファイルをコンパイルします"; 
    27     generate_template_files(); 
     26    generate_template_files($srcdir => $outdir); 
    2827 
    2928    puts "静的ファイルをコピーします"; 
    30     copy_dir('static', '静的ファイル'); 
     29    copy_dir($srcdir => $outdir, 'static', '静的ファイル'); 
    3130 
    3231    puts "コントローラファイルをコピーします"; 
    33     copy_dir('controller', 'コントローラ'); 
     32    copy_dir($srcdir => $outdir, 'controller', 'コントローラ'); 
    3433} 
    3534 
    3635sub generate_cgi { 
     36    my ($srcdir, $outdir) = @_; 
     37 
    3738    puts "menta.cgi をつくりあげる"; 
    38     my $menta = read_file('app/menta.cgi'); 
     39    my $menta = read_file("${srcdir}/menta.cgi"); 
    3940    my $menta_pm = read_file('lib/MENTA.pm'); 
    4041    $menta =~ s/use MENTA;/use strict;use warnings;use utf8;\n$menta_pm\npackage main;/; 
     
    4243 
    4344    puts "menta.cgi を出力します"; 
    44     write_file("$OUTPUT_DIR/menta.cgi" => $menta); 
     45    write_file("$outdir/menta.cgi" => $menta); 
    4546    my $mode = 755; #TODO 
    4647    puts "chmod $mode"; 
    47     chmod oct($mode), "$OUTPUT_DIR/menta.cgi"; 
     48    chmod oct($mode), "$outdir/menta.cgi"; 
    4849} 
    4950 
    5051sub generate_template_files { 
    51     my $outputdir = "$OUTPUT_DIR/tmpl_cache/"; 
     52    my ($srcdir, $outdir) = @_; 
     53 
     54    my $outputdir = "$outdir/tmpl_cache/"; 
    5255    unless (-d $outputdir) { 
    5356        mkdir $outputdir or die "キャッシュディレクトリを作成できません: $!"; 
    5457    } 
    55     opendir my $dir, "$SOURCE_DIR/tmpl" or die "テンプレートファイル用ディレクトリを開けません: $!"; 
     58    opendir my $dir, "$srcdir/tmpl" or die "テンプレートファイル用ディレクトリを開けません: $!"; 
    5659    while (my $file = readdir $dir) { 
    57         my $fname = "$SOURCE_DIR/tmpl/$file"; 
     60        my $fname = "$srcdir/tmpl/$file"; 
    5861        next unless -f $fname; 
    5962        my $src = read_file($fname); 
     
    6871 
    6972sub copy_dir { 
    70     my ($dirname, $type) = @_; 
    71     my $outputdir = "$OUTPUT_DIR/$dirname/"; 
     73    my ($srcdir, $outdir, $dirname, $type) = @_; 
     74    my $outputdir = "$outdir/$dirname/"; 
    7275    unless (-d $outputdir) { 
    7376        mkdir $outputdir or die "${type} 出力用ディレクトリを作成できません: $!"; 
    7477    } 
    75     opendir my $dir, "$SOURCE_DIR/$dirname/" or die "${type} 用ディレクトリを開けません: $!"; 
     78    opendir my $dir, "$srcdir/$dirname/" or die "${type} 用ディレクトリを開けません: $!"; 
    7679    while (my $file = readdir $dir) { 
    77         my $fname = "$SOURCE_DIR/$dirname/$file"; 
     80        my $fname = "$srcdir/$dirname/$file"; 
    7881        next unless -f $fname; 
    7982        write_file("$outputdir/$file" => read_file($fname));