completely missed this
[scpubgit/Tak.git] / lib / App / Tak.pm
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;