Changeset 1352

Show
Ignore:
Timestamp:
08/17/06 15:18:42
Author:
miyagawa
Message:

update dependencies checker

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plagger/tools/check-dependencies.pl

    r1314 r1352  
    66chdir "$FindBin::Bin/.."; 
    77 
    8 use YAML; 
    9  
    10 my $deps = check_dependencies(); 
    11 print Dump $deps; 
     8check_dependencies(); 
    129 
    1310sub check_dependencies { 
    14     my %deps; 
    15  
    1611    # hack Module::Install to collect requires/recommends 
    1712    $INC{"inc/Module/Install.pm"} = __PACKAGE__; 
     
    2015    no warnings 'once'; 
    2116    *tests = *name = *all_from = *features = *tests = *use_test_base = 
    22     *auto_include = *auto_install = *install_script = *WriteAll = sub { }; 
     17    *auto_include = *auto_install = *install_script = *WriteAll = *include_deps = sub { }; 
    2318 
    24     *requires = *recommends = *build_requires = sub { 
    25         my $module = shift; 
    26         eval qq{ require $module }; 
    27         if ($@) { 
    28             $deps{$module} = 'missing'; 
    29         } else { 
    30             $deps{$module} = $module->VERSION; 
    31         } 
    32     }; 
     19    *requires = *build_requires = ::check_module(1); 
     20    *recommends = ::check_module(0); 
    3321 
    3422    do "Makefile.PL"; 
     23} 
    3524 
    36     return \%deps; 
     25sub check_module { 
     26    my $required = shift; 
     27 
     28    return sub { 
     29        my $module = shift; 
     30        my $ver    = shift; 
     31        eval ($ver ? qq{ use $module $ver } : qq{ use $module }); 
     32        if ($@) { 
     33            print "$module: missing" . ($required ? ' (required)' : ''); 
     34        } else { 
     35            print "$module: " . (defined $module->VERSION ? $module->VERSION : 'undef'); 
     36        } 
     37        print "\n"; 
     38    }; 
    3739}