X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FApp%2FPromulger%2FCommand.pm;h=c6675390104df314446293baf958702582d32e8c;hb=21baaef0e40fb1f234a9cf27432d67e73a4e9b92;hp=a46961ad0b1d0d17b2d892beae28676b88ba5439;hpb=35269bf5b66fdcf9e07a81dffd4d44aeea70c5e5;p=p5sagit%2FPromulger.git diff --git a/lib/App/Promulger/Command.pm b/lib/App/Promulger/Command.pm index a46961a..c667539 100644 --- a/lib/App/Promulger/Command.pm +++ b/lib/App/Promulger/Command.pm @@ -2,5 +2,32 @@ package App::Promulger::Command; use strict; use warnings; +use App::Cmd::Setup -command; + +use Promulger::Config; + +sub opt_spec { + return ( + [ "config|c=s", "configuration file", { required => 1 } ], + ); +} + +sub validate_args { + my ($self, $opt, $args) = @_; + my $cf = $opt->{config}; + + unless(-e $cf) { + die "Config file $cf doesn't exist\n"; + } + unless(-f $cf) { + die "Config file $cf not a file\n"; + } + unless(-r $cf) { + die "Config file $cf not readable\n"; + } + + Promulger::Config->config({ Config::General->new($cf)->getall }); + Promulger::Config->config->{config}{config_file} = $cf; +} 1;