From 0fb1f8591637289626b42288e453675a3dded96c Mon Sep 17 00:00:00 2001 From: Marius Gavrilescu Date: Sat, 26 Dec 2015 23:29:38 +0200 Subject: [PATCH] Support filtering by version in App::NAOdash --- lib/App/NAOdash.pm | 6 +++--- naodash | 37 ++++++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/lib/App/NAOdash.pm b/lib/App/NAOdash.pm index 85a5270..d6df6be 100644 --- a/lib/App/NAOdash.pm +++ b/lib/App/NAOdash.pm @@ -94,12 +94,12 @@ EOF } 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) } diff --git a/naodash b/naodash index 52b175e..ae0a604 100755 --- a/naodash +++ b/naodash @@ -4,8 +4,19 @@ use strict; 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__ @@ -20,6 +31,11 @@ naodash - Analyze NetHack xlogfiles and extract statistics (command-line interfa 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. It takes a @@ -28,6 +44,25 @@ results of the analysis. A terminal with ANSI escape code support is required. Do not parse this command's output. For computer-readable output, please use the L library directly. +=head1 OPTIONS + +=over + +=item B<--include-version>=I + +Only consider games played on this version of NetHack. Can be +specified multiple times to include multiple versions. + +=item B<--exclude-version>=I + +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 -- 2.30.2