Git-MoreHooks

 view release on metacpan or  search on metacpan

lib/Git/MoreHooks/CheckCommitBase.pm  view on Meta::CPAN

package Git::MoreHooks::CheckCommitBase;

use strict;
use warnings;
use utf8;

# ABSTRACT: CheckCommit base file

our $VERSION = '0.018'; # VERSION: generated by DZP::OurPkgVersion

use Git::Hooks 3.000000;
use Path::Tiny;
use Log::Any qw{$log};
use Params::Validate qw(:all);

our $USER_HOOK;

sub import {
    my ( $package, $user_hook ) = @_;
    $package .= q{};
    $USER_HOOK = $user_hook;
    return;
}

sub _call_user_hook {
    return &{$USER_HOOK}(@_);
}

sub pre_commit_callback {
    my ($git) = @_;
    my %opts = ( 'old_commit' => ':0', 'new_commit' => undef, 'gerrit-opts' => undef );
    return _call_user_hook( $git, 'pre-commit', \%opts );
}

# This routine can act both as an update or a pre-receive hook.
sub update_callback {
    $log->tracef( 'Entering update_callback(%s)', ( join q{:}, @_ ) );
    my ($git) = @_;
    my %opts = ( 'old_commit' => ':0', 'new_commit' => 0, 'gerrit-opts' => undef );
    return _call_user_hook( $git, 'update', \%opts );
}

sub pre_receive_callback {
    $log->tracef( 'Entering pre_receive_callback(%s)', ( join q{:}, @_ ) );
    my ($git) = @_;
    my %opts = ( 'old_commit' => ':0', 'new_commit' => 0, 'gerrit-opts' => undef );
    return _call_user_hook( $git, 'pre-receive', \%opts );
}

sub ref_update_callback {
    my ($git) = @_;
    my %opts = ( 'old_commit' => ':0', 'new_commit' => 0, 'gerrit-opts' => undef );
    return _call_user_hook( $git, 'ref-update', \%opts );
}

sub patchset_created_callback {
    my ( $git, $opts ) = @_;
    my %opts = ( 'old_commit' => ':0', 'new_commit' => 0, 'gerrit-opts' => $opts );
    return _call_user_hook( $git, 'patchset-created', \%opts );
}

sub draft_published_callback {
    my ( $git, $opts ) = @_;
    my %opts = ( 'old_commit' => ':0', 'new_commit' => 0, 'gerrit-opts' => $opts );
    return _call_user_hook( $git, 'draft-published', \%opts );
}

# Install hooks
PRE_COMMIT \&pre_commit_callback;
UPDATE \&update_callback;
PRE_RECEIVE \&pre_receive_callback;
REF_UPDATE \&ref_update_callback;
PATCHSET_CREATED \&patchset_created_callback;
DRAFT_PUBLISHED \&draft_published_callback;

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

Git::MoreHooks::CheckCommitBase - CheckCommit base file

=head1 VERSION

version 0.018

=head1 SYNOPSIS

Use package via
L<Git::Hooks|Git::Hooks>
interface (git config file).



( run in 1.193 second using v1.01-cache-2.11-cpan-9581c071862 )