make generator (a) provide output (b) accept arguments to restrict what it generates
Matt S Trout [Tue, 25 Oct 2011 08:42:26 +0000 (08:42 +0000)]
lib/SCSite.pm

index f8c8ac1..2b75229 100755 (executable)
@@ -186,11 +186,17 @@ around _run_cli => sub {
 };
 
 sub _run_cli_generate {
-  my ($self, $to) = @_;
+  my ($self, $to, @spec) = @_;
   die "generate requires a directory to generate to"
     unless $to and -d $to;
   my $out = io($to);
+  my $check = do {
+    if (@spec) { '^('.join('|',map quotemeta($_),@spec).')' }
+    else { '.' }
+  };
   foreach my $path ('', $self->pages->all_paths) {
+    next unless "$path/" =~ /$check/;
+    print "Generating ${path}\n";
     my $dir = $out->catdir($path);
     $dir->mkpath;
     $dir->catfile('index.html')->print(
@@ -198,6 +204,8 @@ sub _run_cli_generate {
     );
   }
   foreach my $path (map "/feed/$_/", keys %{$self->_feed_configs}) {
+    next unless "$path/" =~ /$check/;
+    print "Generating ${path}\n";
     my $dir = $out->catdir($path);
     $dir->mkpath;
     $dir->catfile('index.atom')->print(