}
sub run {
- my ($user_or_path) = @_;
+ my ($args, $user_or_path) = @_;
my $stats;
if ($user_or_path =~ /^\w+$/) { # Looks like a user
- $stats = naodash_user $user_or_path
+ $stats = naodash_user $args, $user_or_path
} else {
- $stats = naodash_xlog read_file $user_or_path
+ $stats = naodash_xlog $args, read_file $user_or_path
}
print encode 'UTF-8', naodash_to_ansi $stats ## no critic (RequireCheckedSyscalls)
}
use warnings;
use App::NAOdash;
+use Getopt::Long;
-App::NAOdash::run(@ARGV);
+my %args = (
+ include_versions => [],
+ exclude_versions => [],
+);
+
+GetOptions(
+ "exclude-version=s@", \$args{exclude_versions},
+ "include-version=s@", \$args{include_versions},
+);
+
+App::NAOdash::run(\%args, @ARGV);
__END__
naodash mgv # Show statistics for the mgv user on NAO
naodash /path/to/xlogfile # Show statistics for a given xlogfile
+ # Show statistics for mgv, only including games played on 3.4.3 or 3.60
+ naodash --include-versions=3.6.0 --include-versions=3.4.3 mgv
+ # Show statistics for mgv, ignoring games played on 3.6.0
+ naodash --exclude-versions=3.6.0 mgv
+
=head1 DESCRIPTION
naodash is a command-line interface to L<NetHack::NAOdash>. It takes a
required. Do not parse this command's output. For computer-readable
output, please use the L<NetHack::NAOdash> library directly.
+=head1 OPTIONS
+
+=over
+
+=item B<--include-version>=I<version>
+
+Only consider games played on this version of NetHack. Can be
+specified multiple times to include multiple versions.
+
+=item B<--exclude-version>=I<version>
+
+Do not consider games played on this version of NetHack. Can be
+specified multiple times to exclude multiple versions.
+
+=back
+
+If a version is included and excluded at the same time, games played
+on that version will not be considered.
+
=head1 ENVIRONMENT
=over