Tag defense,... done
This commit is contained in:
parent
bad4dd3766
commit
951470b06b
8 changed files with 601 additions and 232 deletions
93
commands/defenses/prepare_xml.pl
Normal file
93
commands/defenses/prepare_xml.pl
Normal file
|
@ -0,0 +1,93 @@
|
|||
#! /usr/bin/env perl
|
||||
|
||||
use v5.10.1;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use Pod::Usage;
|
||||
use XML::LibXML;
|
||||
|
||||
use lib "../";
|
||||
|
||||
use ACU::Defense;
|
||||
|
||||
# Parse arguments
|
||||
my $input; my $output;
|
||||
my $help; my $man;
|
||||
GetOptions ("output|O=s" => \$output,
|
||||
"help|h|?" => \$help,
|
||||
"man" => \$man,
|
||||
"" => \$input)
|
||||
or pod2usage(2);
|
||||
pod2usage(1) if $help;
|
||||
pod2usage(-exitval => 0, -verbose => 2) if $man;
|
||||
|
||||
# Open defense XML file
|
||||
my $xmlin;
|
||||
if (defined $input || $#ARGV == -1) {
|
||||
$xmlin = *STDIN;
|
||||
}
|
||||
else {
|
||||
open $xmlin, "<", $ARGV[0] or die $!;
|
||||
}
|
||||
|
||||
binmode $xmlin;
|
||||
|
||||
my $str;
|
||||
$str .= $_ while(<$xmlin>);
|
||||
|
||||
my $defense = Defense->new($str);
|
||||
close $xmlin unless $xmlin eq *STDIN;
|
||||
|
||||
$defense->genIds;
|
||||
|
||||
# Save defense XML file
|
||||
my $xmlout;
|
||||
if (defined $output) {
|
||||
open $xmlout, '>', $output;
|
||||
binmode $xmlout;
|
||||
}
|
||||
else {
|
||||
$xmlout = *STDOUT;
|
||||
}
|
||||
print {$xmlout} $defense->toString();
|
||||
close $xmlout unless $xmlout eq *STDOUT;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
prepare_xml.pl - Prepare defense XML by adding id to groups, questions and answers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
prepare_xml.pl [options] [file]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Parse the XML file given (or stdin if no file is given) and add id to groups, questions and answers that have any or duplicate id.
|
||||
|
||||
Options:
|
||||
-output=file.xml save prepared XML to this location
|
||||
-help brief help message
|
||||
-man full documentation
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 8
|
||||
|
||||
=item B<-output=file.xml>
|
||||
|
||||
Save the prepared XML to a file instead of printing it on standard output.
|
||||
|
||||
=item B<-help>
|
||||
|
||||
Print a brief help message and exits.
|
||||
|
||||
=item B<-man>
|
||||
|
||||
Prints the manual page and exits.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
Reference in a new issue