X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fssic.pl;h=73c608d134041f61294bb56c35c13a698d1e60f7;hb=ec6fe3631c44da06d59cf539ad8655d69626d922;hp=30f1f255371f92a821cd2ee09feb76dc3608d922;hpb=54231a8541deca709baeb49e35e62a4d7ecea00a;p=ssic.git
diff --git a/src/ssic.pl b/src/ssic.pl
old mode 100644
new mode 100755
index 30f1f25..73c608d
--- a/src/ssic.pl
+++ b/src/ssic.pl
@@ -1,47 +1,77 @@
#!/usr/bin/perl
+#
+# Copyright (C) 2013 Patrick "P. J." McDermott
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
use strict;
use warnings;
-use Getopt::Std;
+use Getopt::Long;
use CGI::SSI;
sub main
{
my %opts;
+ my $ssi;
my $input;
my $output;
$SIG{'__WARN__'} = \&warning;
- if (not getopts('o:hV', \%opts)) {
+ Getopt::Long::Configure("no_ignore_case", "bundling", "gnu_compat",
+ "no_getopt_compat");
+ if (not GetOptions(\%opts,
+ "o=s",
+ "D=s%",
+ "I=s",
+ "h|help",
+ "V|version",
+ )) {
usage(*STDERR);
+ exit(4);
}
if (exists($opts{'h'})) {
- help(*STDERR);
+ help(*STDOUT);
exit(0);
}
if (exists($opts{'V'})) {
- version(*STDERR);
+ version(*STDOUT);
exit(0);
}
if ($#ARGV lt 0) {
error(4, "No input files\n");
}
+
+ $ssi = init_compiler($opts{'D'}, $opts{'I'});
+
if (exists($opts{'o'})) {
if ($#ARGV gt 0) {
error(4, "Cannot specify -o with multiple files\n");
}
- compile($ARGV[0], $opts{'o'});
+ compile($ssi, $ARGV[0], $opts{'o'});
} else {
for $input (@ARGV) {
$output = $input;
$output =~ s/\.[^.]+$/.html/;
- compile($input, $output);
+ compile($ssi, $input, $output);
}
}
+
+ undef $ssi;
}
sub usage
@@ -57,9 +87,11 @@ sub help
usage($fh);
print("Options:\n");
- print(" -o