Pcore

 view release on metacpan or  search on metacpan

lib/Pcore/API/Docker/Hub.pm  view on Meta::CPAN


# CREATE REPO / AUTOMATED BUILD
sub create_repo ( $self, $repo_id, %args ) {
    %args = (
        private   => 0,
        desc      => $EMPTY,
        full_desc => $EMPTY,
        %args
    );

    my ( $namespace, $name ) = split m[/]sm, $repo_id;

    return $self->_req(
        'POST',
        '/repositories/',
        {   namespace        => $namespace,
            name             => $name,
            is_private       => $args{private},
            description      => $args{desc},
            full_description => $args{full_desc},
        }

lib/Pcore/API/Docker/Hub.pm  view on Meta::CPAN

# TODO not work
sub create_autobuild ( $self, $repo_id, $git_repo_id, $desc, %args ) {
    %args = (
        desc       => undef,
        private    => 0,
        active     => 1,
        build_tags => undef,
        %args,
    );

    my ( $namespace, $name ) = split m[/]sm, $repo_id;

    my $build_tags;

    # prepare build tags
    if ( !$args{build_tags} ) {
        $build_tags = [
            {   name                => '{sourceref}',                                                # docker build tag name
                source_type         => $DOCKERHUB_SOURCE_TYPE_NAME->{$DOCKERHUB_SOURCE_TYPE_TAG},    # Branch, Tag
                source_name         => '/.*/',                                                       # barnch / tag name in the source repository
                dockerfile_location => '/',

lib/Pcore/API/Docker/Hub.pm  view on Meta::CPAN

            $data->{ $tag->{id} } = $tag;
        }

        $res->{data} = $data;
    }

    return $res;
}

sub create_autobuild_tag ( $self, $repo_id, $tag_name, $source_name, $source_type, $dockerfile_location ) {
    my ( $namespace, $name ) = split m[/]sm, $repo_id;

    return $self->_req(
        'POST',
        "/repositories/$repo_id/autobuild/tags/",
        {   name                => $tag_name,
            dockerfile_location => $dockerfile_location // '/',
            source_name         => $source_name,
            source_type         => $DOCKERHUB_SOURCE_TYPE_NAME->{ lc $source_type },
            isNew               => \1,
            repoName            => $name,

lib/Pcore/API/Git/Upstream.pm  view on Meta::CPAN

                }
            }

            ( $args->{repo_namespace}, $args->{repo_name} ) = ( $url->{path} =~ m[/([[:alnum:]_-]+)/([[:alnum:]_-]+)]smi );
        }

        $args->{repo_id} = "$args->{repo_namespace}/$args->{repo_name}";
    }
    else {
        if ( $args->{repo_id} ) {
            ( $args->{repo_namespace}, $args->{repo_name} ) = split m[/]sm, $args->{repo_id};
        }
        else {
            $args->{repo_id} = "$args->{repo_namespace}/$args->{repo_name}";
        }
    }

    if ( $args->{host} ) {
        $args->{hosting} ||= $GIT_UPSTREAM_HOST_NAME->{ $args->{host} } if exists $GIT_UPSTREAM_HOST_NAME->{ $args->{host} };
    }
    elsif ( $args->{hosting} ) {

lib/Pcore/API/GitHub.pm  view on Meta::CPAN

        homepage      => undef,
        has_downloads => 1,
        @args
    );

    $args{private}       = delete $args{is_private} ? \1 : \0;
    $args{has_issues}    = $args{has_issues}        ? \1 : \0;
    $args{has_wiki}      = $args{has_wiki}          ? \1 : \0;
    $args{has_downloads} = $args{has_downloads}     ? \1 : \0;

    ( my $repo_namespace, $args{name} ) = split m[/]sm, $repo_id;

    my $endpoint;

    if ( $repo_namespace eq $self->{username} ) {
        $endpoint = '/user/repos';
    }
    else {
        $endpoint = "/orgs/$repo_namespace/repos";
    }

lib/Pcore/Util/File.pm  view on Meta::CPAN


    my @extracted;

    for my $file ( $tar->get_files ) {
        next if !defined $file->{filename};

        my $path = P->path( '/' . $file->full_path );

        if ( $args{strip_component} ) {
            if ( !$strip_component ) {
                my @labels = split m[/]sm, $path;

                die q[Can't strip component, path is too short] if @labels < $args{strip_component};

                $strip_component = P->path( '/' . join( '/', splice @labels, 0, $args{strip_component} + 1 ) );
            }

            die qq[Can't strip component "$strip_component" from path "$path"] if $path !~ s[\A$strip_component][]sm;
        }

        my $target_path = P->path("$target/$path");

lib/Pcore/Util/MIME.pm  view on Meta::CPAN


our $DATA;

sub _load_data {
    if ( !defined $DATA ) {
        $DATA = $ENV->{share}->read_cfg('/Pcore/data/mime.yaml');    ## no critic qw[Variables::RequireLocalizedPunctuationVars]

        state $get_tags = sub ($data) {
            my $type = shift $data->@*;

            push $data->@*, split m[/]sm, $type, 2;

            my $tags = { map { $_ => 1 } $data->@* };

            # text types can be compressed
            $tags->{compress} = 1 if exists $tags->{text};

            return $type, $tags;
        };

        for my $key (qw[custom_suffix filename suffix]) {

lib/Pcore/Util/Src/Filter/html.pm  view on Meta::CPAN


    my $res = $self->filter_prettier( parser => 'html' );

    return $res;
}

sub compress ($self) {
    return $SRC_OK if $self->has_kolon;

    # compress js
    my @script = split m[(<script[^>]*>)(.*?)(</script[^>]*>)]smi, $self->{data};

    for my $i ( 0 .. $#script ) {
        if ( $script[$i] =~ m/\A<script/sm && $script[ $i + 1 ] ) {
            my $res = Pcore::Util::Src::Filter::js->compress( \$script[ $i + 1 ] );

            return $res if !$res;
        }
    }

    $self->{data} = join $EMPTY, @script;

    # compress css
    my @css = split m[(<style[^>]*>)(.*?)(</style[^>]*>)]smi, $self->{data};

    for my $i ( 0 .. $#css ) {
        if ( $css[$i] =~ m/\A<style/sm && $css[ $i + 1 ] ) {
            my $res = Pcore::Util::Src::Filter::css->compress( \$css[ $i + 1 ] );

            return $res if !$res;
        }
    }

    $self->{data} = join $EMPTY, @css;



( run in 0.922 second using v1.01-cache-2.11-cpan-71847e10f99 )