Changeset 2961

Show
Ignore:
Timestamp:
08/21/08 18:02:53 (3 months ago)
Author:
mpaschal
Message:

Support hashref form of GetOptions (maybe?)
BugzID: 80878

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/feature-worker/lib/MT/Tool.pm

    r2960 r2961  
    5858    my $class = shift; 
    5959 
    60     $class->set_up_app(); 
    61  
    62     my $verbose; 
    63     my $opts_good = GetOptions( 
    64         'help!'      => sub { $class->show_help();  exit; }, 
    65         'usage!'     => sub { $class->show_usage(); exit; }, 
    66         'verbose|v+' => \$verbose, 
    67  
    68         $class->options(), 
     60    $class->set_up_app(@_); 
     61    return $class->parse_options(@_); 
     62
     63 
     64sub parse_options { 
     65    my $class = shift; 
     66 
     67    my @options = $class->options(); 
     68 
     69    my $addl_settings = ref $options[0] ? $options[0] : {}; 
     70    my %addl_options = ( 
     71        'help!'      => \$addl_settings{help}, 
     72        'usage!'     => \$addl_settings{usage}, 
     73        'verbose|v+' => \$addl_settings{verbose}, 
    6974    ); 
    70     $class->show_usage(), exit if !$opts_good; 
    71  
    72     return $verbose; 
     75 
     76    my $opts_good = GetOptions(@options, 
     77        ref $options[0] ? keys %addl_options : %addl_options); 
     78 
     79    if (!$opts_good || $addl_settings->{usage}) { 
     80        $class->show_usage(); 
     81        exit; 
     82    } 
     83    if ($addl_settings->{help}) { 
     84        $class->show_help(); 
     85        exit; 
     86    } 
     87 
     88    return $addl_settings->{verbose}; 
    7389} 
    7490