#!/usr/bin/env perl

package My::Role::ColoredHelp;

use Mojo::Base -role;
use Term::ANSIColor qw( colored );

sub color_msg {
   my ( $s, $msg, $script ) = @_;

   # Script.
   $msg =~ s/ <SCRIPT> / colored($script,"YELLOW") /xge;

   # Quotes.
   $msg =~ s/ ( ' [^']*+ ' ) / colored($1,"GREEN") /xge;

   # Variables.
   $msg =~ s/ (\$\w+) / colored($1,"GREEN") /xge;

   # Functions.
   $msg =~ s/ ( \w+\(\) ) / colored($1,"GREEN") /xge;

   # Options.
   $msg =~ s/ (-+\w[^#]+) / colored($1,"GREEN") /xge;

   # Comments.
   $msg =~ s/ (\#.+) / colored($1,"ON_BRIGHT_BLACK") /xge;

   # Errors.
   $msg =~ s/ ^ (ERROR:.+) / colored($1,"RED") /xge;

   $msg;
}

1;