]> Dogcows Code - chaz/git-codeowners/blobdiff - lib/App/Codeowners/Options.pm
fix printing wide char with YAML formatter
[chaz/git-codeowners] / lib / App / Codeowners / Options.pm
index 7b43b75cc5e5d0272af568bbaea4979cbfb4755c..154b09894fd92a793f10654d977575b11221d09a 100644 (file)
@@ -1,15 +1,37 @@
 package App::Codeowners::Options;
 # ABSTRACT: Getopt and shell completion for App::Codeowners
 
+use v5.10.1;
 use warnings;
 use strict;
 
+use Encode qw(decode);
 use Getopt::Long 2.39 ();
 use Path::Tiny;
-use Pod::Usage;
 
 our $VERSION = '9999.999'; # VERSION
 
+sub pod2usage {
+    eval { require Pod::Usage };
+    if ($@) {
+        my $ref  = $VERSION eq '9999.999' ? 'master' : "v$VERSION";
+        my $exit = (@_ == 1 && $_[0] =~ /^\d+$/ && $_[0]) //
+                   (@_ % 2 == 0 && {@_}->{'-exitval'})    // 2;
+        print STDERR <<END;
+Online documentation is available at:
+
+  https://github.com/chazmcgarvey/git-codeowners/blob/$ref/README.md
+
+Tip: To enable inline documentation, install the Pod::Usage module.
+
+END
+        exit $exit;
+    }
+    else {
+        Pod::Usage::pod2usage(@_);
+    }
+}
+
 sub early_options {
     return {
         'color|colour!'         => (-t STDOUT ? 1 : 0), ## no critic (InputOutput::ProhibitInteractiveTest)
@@ -61,6 +83,9 @@ sub new {
     my $class = shift;
     my @args  = @_;
 
+    # assume UTF-8 args if non-ASCII
+    @args = map { decode('UTF-8', $_) } @args if grep { /\P{ASCII}/ } @args;
+
     my $self = bless {}, $class;
 
     my @args_copy = @args;
This page took 0.022423 seconds and 4 git commands to generate.