if($class->meta->does_role('MooseX::ConfigFromFile')) {
local @ARGV = @ARGV;
+ # just get the configfile arg now; the rest of the args will be
+ # fetched later
my $configfile;
- my $opt_parser = Getopt::Long::Parser->new( config => [ qw( pass_through ) ] );
+ my $opt_parser = Getopt::Long::Parser->new( config => [ qw( no_auto_help pass_through ) ] );
$opt_parser->getoptions( "configfile=s" => \$configfile );
if(!defined $configfile) {
my $params = $config_from_file ? { %$config_from_file, %{$processed{params}} } : $processed{params};
# did the user request usage information?
- if ( $processed{usage} && ($params->{'?'} or $params->{help} or $params->{usage}) )
+ if ( $processed{usage} and $params->{help_flag} )
{
$class->_getopt_full_usage($processed{usage});
}
$class->new(
ARGV => $processed{argv_copy},
extra_argv => $processed{argv},
+ ( $processed{usage} ? ( usage => $processed{usage} ) : () ),
%$constructor_params, # explicit params to ->new
%$params, # params from CLI
);
opt_string => $opt_string,
required => $attr->is_required && !$attr->has_default && !$attr->has_builder && !exists $config_from_file->{$attr->name},
# NOTE:
- # this "feature" was breaking because
- # Getopt::Long::Descriptive would return
- # the default value as if it was a command
+ # this "feature" was breaking because
+ # Getopt::Long::Descriptive would return
+ # the default value as if it was a command
# line flag, which would then override the
# one passed into a constructor.
# See 100_gld_default_bug.t for an example