diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-04-18 12:43:32 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-04-18 12:43:32 +0200 |
commit | 78983b4f3639b030f17202158e6dfe73b6939e66 (patch) | |
tree | 5ac34d1a0193cefb4dec7e1a9b01b531c1771813 | |
parent | 1edf2e311e52d8f0da07f6a558aad9e5102bad84 (diff) |
dbris: Add --colour={auto,always,never} option
-rwxr-xr-x | bin/dbris | 48 |
1 files changed, 35 insertions, 13 deletions
@@ -21,7 +21,8 @@ my ( $show_offers, $show_upsell_offers, $show_cross_offers ); my ( $first_class, $passengers ); my ( $developer_mode, $verbose ); my ( $json_output, $raw_json_output ); -my $use_cache = 1; +my $use_cache = 1; +my $use_colour = 'auto'; my $cache; my %known_mot = map { $_ => 1 } @@ -32,20 +33,20 @@ for my $arg (@ARGV) { $arg = decode( 'UTF-8', $arg ); } -my $output_bold = -t STDOUT ? "\033[1m" : q{}; -my $output_reset = -t STDOUT ? "\033[0m" : q{}; +my $output_bold = "\033[1m"; +my $output_reset = "\033[0m"; -my $output_fyi = -t STDOUT ? "\033[40;36m" : q{}; -my $output_unknown = -t STDOUT ? "\033[40;35m" : q{}; -my $output_good = -t STDOUT ? "\033[40;32m" : q{}; -my $output_warning = -t STDOUT ? "\033[40;33m" : q{}; -my $output_critical = -t STDOUT ? "\033[40;31m" : q{}; +my $output_fyi = "\033[40;36m"; +my $output_unknown = "\033[40;35m"; +my $output_good = "\033[40;32m"; +my $output_warning = "\033[40;33m"; +my $output_critical = "\033[40;31m"; -my $output_bold_fyi = -t STDOUT ? "\033[1;40;36m" : q{}; -my $output_bold_unknown = -t STDOUT ? "\033[1;40;35m" : q{}; -my $output_bold_good = -t STDOUT ? "\033[1;40;32m" : q{}; -my $output_bold_warning = -t STDOUT ? "\033[1;40;33m" : q{}; -my $output_bold_critical = -t STDOUT ? "\033[1;40;31m" : q{}; +my $output_bold_fyi = "\033[1;40;36m"; +my $output_bold_unknown = "\033[1;40;35m"; +my $output_bold_good = "\033[1;40;32m"; +my $output_bold_warning = "\033[1;40;33m"; +my $output_bold_critical = "\033[1;40;31m"; GetOptions( 'a|arrive=s' => sub { $arrival = 1; $time = $_[1] }, @@ -64,12 +65,25 @@ GetOptions( 'v|verbose' => \$verbose, 'V|version' => \&show_version, 'cache!' => \$use_cache, + 'color=s' => \$use_colour, + 'colour=s' => \$use_colour, 'devmode' => \$developer_mode, 'json' => \$json_output, 'raw-json' => \$raw_json_output, ) or show_help(1); +if ( $use_colour eq 'auto' + and ( not -t STDOUT or ( defined $ENV{TERM} and $ENV{TERM} eq 'dumb' ) ) + or $use_colour eq 'never' ) +{ + $output_bold = $output_reset = q{}; + $output_fyi = $output_unknown = $output_good = $output_warning + = $output_critical = q{}; + $output_bold_fyi = $output_bold_unknown = $output_bold_good + = $output_bold_warning = $output_bold_critical = q{}; +} + if ($use_cache) { my $cache_path = ( $ENV{XDG_CACHE_HOME} // "$ENV{HOME}/.cache" ) . '/Travel-Routing-DE-DBRIS'; @@ -553,6 +567,14 @@ connections, with an optional minimum stopover I<duration> given in minutes. Request connections that arrive on or after I<HH:MM>. Overrides B<--time>. +=item B<--colour>, B<--color> B<always>|B<auto>|B<never> + +By default, B<dbris-m> uses ANSI escape codes for output formatting whenever +the output is connected to a terminal and the TERM environment variable is not +set to C<< dumb >>. B<--colour=always> causes it to always use output +formatting regardless of terminal setup, and B<--colour=never> disables any +formatting. B<--colour=auto> restores the default behaviour. + =item B<-d>, B<--date> I<dd.mm.>[I<yyyy>] Request connections for a specific day. |