From 74add2cb4f4406603baf88273bae36598419d3d1 Mon Sep 17 00:00:00 2001 From: Ryan Voots Date: Mon, 27 Mar 2017 20:34:39 -0400 Subject: [PATCH] cpanfile support now in place --- cpanfile | 7 +++++++ run.pl | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 cpanfile diff --git a/cpanfile b/cpanfile new file mode 100644 index 0000000..2109d25 --- /dev/null +++ b/cpanfile @@ -0,0 +1,7 @@ +requires 'Moose'; +requires 'Module::CoreList'; +requires 'Storable'; +requires 'Data::Dumper'; +requires 'List::Util'; +requires 'IPC::Run'; +requires 'Getopt::Long'; diff --git a/run.pl b/run.pl index 3a48153..dbafb6b 100755 --- a/run.pl +++ b/run.pl @@ -74,6 +74,38 @@ sub print_deps { } } +package cpanfile; +# HACK since cpan files are valid perl, i'm just using do/require + +our @mods; + +sub __parse_file { + my $file = shift; + + require $file; +} + +sub requires { + push @mods, $_[0]; +} + +sub recommends { + push @mods, $_[0]; +} + +sub conflicts {} # IGNORE These + +# we expect all types +sub on { + my ($env, $code) = @_; + $code->(); +} + +sub feature { + my ($feat, $desc, $code) = @_; + $code->(); +} + package main; use strict; use autodie; @@ -158,6 +190,8 @@ sub main { if ($opt_cpanfile) { # TODO read cpanfile, via do/require + cpanfile::__parse_file($opt_cpanfile); + @mods_to_test = @cpanfile::mods; } my @modules;