App-PMUtils

 view release on metacpan or  search on metacpan

lib/App/PMUtils.pm  view on Meta::CPAN

            push @$res, @$mods > 1 ? {module=>$mod, path=>$_} : $_;
        }
    }

    if ($found) {
        [200, "OK", $res];
    } else {
        if ($args{dir}) {
            [200, "OK (not found)", "."];
        } else {
            [404, "No such module"];
        }
    }
}

$SPEC{pmdir} = do {
    my $meta = { %{ $SPEC{pmpath} } }; # shallow copy
    $meta->{summary} = "Get directory of locally installed Perl module/prefix";
    $meta->{description} = <<'_';

This is basically a shortcut for:

script/pmbin  view on Meta::CPAN

            push @$res, $_;
        }
        close $fh;
    }

    if ($has_ok && $has_nok) {
        [207, "Some OK", $res];
    } elsif ($has_ok) {
        [200, "All OK", $res];
    } elsif ($has_nok) {
        [404, "Can't find .packlist for module(s)"];
    } else {
        [200, "No items"];
    }
}

Perinci::CmdLine::Any->new(
    url => '/main/pmbin',
    read_config => 0,
    read_env => 0,
)->run;

script/pmchkver  view on Meta::CPAN

            unless ($apires->{success}) {
                $rec->{note} = "Failed API request (1): $apires->{status} - $apires->{reason}";
                last;
            }
            eval { $apires = JSON::MaybeXS::decode_json($apires->{content}) };
            if ($@) {
                $rec->{note} = "Invalid API response: not valid JSON: $@";
                last;
            }
            if ($apires->{message}) {
                if ($apires->{code} == 404) {
                    $rec->{on_cpan} = 0;
                    last;
                } else {
                    $rec->{note} = "Failed API request (2): $apires->{code} - $apires->{message}";
                    last;
                }
            }
            $rec->{on_cpan} = 1;
            $rec->{cpan_version} = $apires->{version};
        }

script/pmhtml  view on Meta::CPAN

sub pmhtml {
    require Browser::Open;
    require File::Temp;
    require File::Util::Tempdir;
    require Module::Path::More;

    my %args = @_;
    my $mod = $args{module};
    my $mpath = Module::Path::More::module_path(
        module => $mod, find_pmc=>0, find_pod=>$args{pod}, find_prefix=>0);
    return [404, "Can't find module $mod"] unless defined $mpath;

    my $tmpdir = File::Util::Tempdir::get_tempdir();
    my $cachedir = File::Temp::tempdir(CLEANUP => 1);
    my $name = $mod; $name =~ s/:+/_/g;
    my ($infh, $infile) = File::Temp::tempfile(
        "$name.XXXXXXXX", DIR=>$tmpdir, SUFFIX=>".pod");
    my $outfile = "$infile.html";
    system(
        "pod2html",
        "--infile", $mpath,

script/pmlatest  view on Meta::CPAN

            unless ($apires->{success}) {
                $rec->{note} = "Failed API request (1): $apires->{status} - $apires->{reason}";
                last;
            }
            eval { $apires = JSON::MaybeXS::decode_json($apires->{content}) };
            if ($@) {
                $rec->{note} = "Invalid API response: not valid JSON: $@";
                last;
            }
            if ($apires->{message}) {
                if ($apires->{code} == 404) {
                    $rec->{on_cpan} = 0;
                    last;
                } else {
                    $rec->{note} = "Failed API request (2): $apires->{code} - $apires->{message}";
                    last;
                }
            }
            $rec->{on_cpan} = 1;
            $rec->{cpan_version} = $apires->{version};
        }

script/pmless  view on Meta::CPAN

    my @mpaths;
    for my $mod (@$mods) {
        my $mpath = Module::Path::More::module_path(
            module => $mod, find_pmc=>0, find_pod=>$args{pod}, find_prefix=>0);
        if (defined $mpath) {
            push @mpaths, $mpath;
        } else {
            warn "pmless: Can't find path for module '$mod'\n";
        }
    }
    return [404, "Can't find path(s) for module(s)"] unless @mpaths;
    system "less", @mpaths;
    [200, "OK"];
}

Perinci::CmdLine::Any->new(
    url => '/main/pmless',
    read_config => 0,
    read_env => 0,
)->run;

script/pmminversion  view on Meta::CPAN

            $rec->{minimum_explicit_version} = $pmv->minimum_explicit_version;
        }
        if ($args{with_minimum_syntax_version}) {
            $rec->{minimum_syntax_version} = $pmv->minimum_syntax_version;
        }

        push @$res, $rec;
    }

    if (!$found) {
        [404, "No such module(s): " . join(", ", @$mods)];
    } else {
        [200, "OK", $res, {
            'table.fields' => [qw/module minimum_version minimum_explicit_version minimum_syntax_version/],
        }];
    }
}

Perinci::CmdLine::Any->new(
    url => '/main/pmminversion',
    read_config => 0,

script/pmversion  view on Meta::CPAN

        }

        if (defined $v) {
            push @$res, (@$mods > 1 ? "$mod $v" : $v);
        } else {
            push @$res, "Module $mod does not define \$VERSION";
        }
    }

    if (!$found) {
        [404, "No such module(s): " . join(", ", @$mods)];
    } else {
        [200, "OK", $res];
    }
}

Perinci::CmdLine::Any->new(
    url => '/main/pmversion',
    read_config => 0,
    read_env => 0,
)->run;

script/pmxs  view on Meta::CPAN

        $fres = uc($fres // '?');
        push @$res, @$mods > 1 ? {
            module=>$mod,
            xs=>$fres,
        } : $fres;
    }

    if ($found) {
        [200, "OK", $res];
    } else {
        [404, "No such module"];
    }
}

Perinci::CmdLine::Any->new(
    url => '/main/pmxs',
    read_config => 0,
    read_env => 0,
)->run;

# ABSTRACT: Check whether an installed Perl module is XS/pure-perl

script/podpath  view on Meta::CPAN

        my $mpath = Module::Path::More::module_path(
            module=>$pod, find_pmc=>0, find_pm=>0, find_pod=>1, find_prefix=>0,
            abs=>$args{abs}, all=>$args{all});
        $found++ if $mpath;
        push @$res, @$pods > 1 ? {pod=>$pod, path=>$mpath} : $mpath;
    }

    if ($found) {
        [200, "OK", $res];
    } else {
        [404, "No such POD"];
    }
}

Perinci::CmdLine::Any->new(
    url => '/main/podpath',
    read_config => 0,
    read_env => 0,
)->run;

# ABSTRACT: Get path to locally installed POD



( run in 0.924 second using v1.01-cache-2.11-cpan-39bf76dae61 )