use strict;
use warnings;
+use Getopt::Long;
use UCW::Temple;
-if (@ARGV == 1) {
- UCW::Temple::process_file($ARGV[0]);
-} elsif (@ARGV == 2) {
+my $out;
+
+GetOptions('out|o=s' => \$out) or die "Usage: temple [-o <out>] <in> ...";
+if (defined $out) {
close STDOUT;
- open STDOUT, ">$ARGV[1]" or die "Cannot open $ARGV[1]: $!";
- UCW::Temple::process_file($ARGV[0]);
-} else {
- die "Usage: temple <in> [<out>]";
+ open STDOUT, ">$out" or die "Cannot open $out: $!";
+}
+if (!@ARGV) { push @ARGV, "-"; }
+UCW::Temple::start();
+foreach (@ARGV) {
+ UCW::Temple::parse_file($_);
}
+UCW::Temple::finish();