Commit | Line | Data |
511c36fe |
1 | package App::Tak; |
2 | |
3 | use Moo; |
4 | |
5 | has env => (is => 'ro', required => 1); |
6 | |
7 | sub new_from_environment { |
8 | my $class = shift; |
9 | my %env = ( |
10 | env => { %ENV }, argv => [ @ARGV ], |
11 | stdin => \*STDIN, stdout => \*STDOUT, stderr => \*STDERR |
12 | ); |
13 | $class->new(env => \%env); |
14 | } |
15 | |
16 | sub run { |
17 | my ($self) = @_; |
18 | my @argv = @{$self->env->{argv}}; |
19 | require Tak::MyScript; |
20 | my $opt = Tak::MyScript->_parse_options( |
21 | 'config|c=s;host|h=s@;local|l!;verbose|v+;quiet|q+', \@argv |
22 | ); |
23 | Tak::MyScript->new( |
24 | options => $opt, |
25 | env => { %{$self->env}, argv => \@argv } |
26 | )->run; |
27 | } |
28 | |
29 | 1; |