completely missed this
Matt S Trout [Fri, 11 Nov 2011 12:21:41 +0000 (12:21 +0000)]
lib/App/Tak.pm [new file with mode: 0644]

diff --git a/lib/App/Tak.pm b/lib/App/Tak.pm
new file mode 100644 (file)
index 0000000..2acd5ee
--- /dev/null
@@ -0,0 +1,29 @@
+package App::Tak;
+
+use Moo;
+
+has env => (is => 'ro', required => 1);
+
+sub new_from_environment {
+  my $class = shift;
+  my %env = (
+    env => { %ENV }, argv => [ @ARGV ],
+    stdin => \*STDIN, stdout => \*STDOUT, stderr => \*STDERR
+  );
+  $class->new(env => \%env);
+}
+
+sub run {
+  my ($self) = @_;
+  my @argv = @{$self->env->{argv}};
+  require Tak::MyScript;
+  my $opt = Tak::MyScript->_parse_options(
+    'config|c=s;host|h=s@;local|l!;verbose|v+;quiet|q+', \@argv
+  );
+  Tak::MyScript->new(
+    options => $opt,
+    env => { %{$self->env}, argv => \@argv }
+  )->run;
+}
+
+1;