getopts('vnsj:f:o:i:', \%opts);
my $dirout;
-if (-d $opts{o}) {
- # output is a directory
- $dirout = 1;
-} else {
- # output is a single file, imply -i <ext>
- if ($opts{o} =~ /\.(\w+)$/) {
- $opts{i} = $1;
+if (defined $opts{o}) {
+ if (-d $opts{o}) {
+ # output is a directory
+ $dirout = 1;
} else {
- print "Specified -o <file>, but '$opts{o}' has no extension.\n";
- exit 1;
+ # output is a single file, imply -i <ext> unless -i has also been specified
+ if ($opts{o} =~ /\.(\w+)$/) {
+ $opts{i} = $1 unless exists $opts{i};
+ } else {
+ print "Specified -o <file>, but '$opts{o}' has no extension.\n";
+ exit 1;
+ }
}
}
s/\s+$//;
next if /^$/;
- if (/^([\w.]+)\s*=>\s*([\w.]+)\s*:\s*(.*)$/) {
+ if (/^([\w.-]+)\s*=>\s*([\w.-]+)\s*:\s*(.*)$/) {
$rules{$2}{$1} = $3;
} elsif (/^($var_re)\s*=\s*(.*)$/) {
$vars{$1} = expand($2);