diff --git a/Base/CLI.pm b/Base/CLI.pm index e929eab..97f3d0e 100644 --- a/Base/CLI.pm +++ b/Base/CLI.pm @@ -6,6 +6,8 @@ use mro qw/c3/; use File::Basename (); use Data::Dumper (); +use attributes (); + use MOP4Import::Base::Configure -as_base, qw/FieldSpec/ , [fields => [quiet => doc => 'to be (somewhat) quiet'] @@ -163,4 +165,25 @@ sub cli_format_option { sprintf " --%-${len}s %s\n", $fs->{name}, $fs->{doc} // ""; } +# Poorman's code attribute handler, only for Doc(). +{ + my %cmd_doc; + + sub MODIFY_CODE_ATTRIBUTES { + my ($pack, $sub, @attrs) = @_; + map { + my $cp = $_; + if ($cp =~ s/^Doc\(//i) { + $cp =~ s/\)$//; + $cp =~ s/^\"(.*?)\"$/$1/s; + $cp =~ s/^\'(.*?)\'$/$1/s; + $cmd_doc{$sub} = $cp; + (); + } else { + $_; + } + } @attrs; + } +} + 1;