This file is indexed.

/usr/share/perl5/Dist/Inkt/Role/Hg.pm is in libdist-inkt-role-hg-perl 0.004-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
use 5.010001;
use strict;
use warnings;

package Dist::Inkt::Role::Hg;

our $AUTHORITY = 'cpan:TOBYINK';
our $VERSION   = '0.004';

use Moose::Role;
use File::chdir;
use Types::Standard 'Bool';
use namespace::autoclean;

has source_control_is_hg => (
	is      => "ro",
	isa     => Bool,
	lazy    => 1,
	builder => "_build_source_control_is_hg",
);

sub _build_source_control_is_hg
{
	my $self = shift;
	!! $self->rootdir->child(".hg")->is_dir;
}

after BUILD => sub
{
	my $self = shift;
	return unless $self->source_control_is_hg;
	
	$self->setup_prerelease_action(sub {
		local $CWD = $self->rootdir;
		my @stat =
			grep !/^\?(.+)\.tar.gz/,  # allow the recently built tarball!
			grep /\w/,
			split /\r?\n/,
			`hg status`;
		if (@stat) {
			$self->log("Mercurial has uncommitted changes - please commit them");
			$self->log($_) for @stat;
			system("/bin/sh");
		}
	}) if $self->can("setup_prerelease_action");
	
	$self->setup_postrelease_action(sub {
		my $self = shift;
		local $CWD = $self->rootdir;
		$self->log("hg tag " . $self->version);
		system("hg", "tag", $self->version);
		$self->log("hg push");
		system("hg", "push");
	}) if $self->can("setup_postrelease_action");
};

1;

__END__

=pod

=encoding utf-8

=head1 NAME

Dist::Inkt::Role::Hg - Mercurial-related behaviour for Dist::Inkt

=head1 DESCRIPTION

=over

=item *

Prevents a release from being built if there are uncommitted changes.

=item *

Does an << hg tag >> and C<< hg push >> after release.

=back

=head1 BUGS

Please report any bugs to
L<http://rt.cpan.org/Dist/Display.html?Queue=Dist-Inkt-Role-Hg>.

=head1 SEE ALSO

=head1 AUTHOR

Toby Inkster E<lt>tobyink@cpan.orgE<gt>.

=head1 COPYRIGHT AND LICENCE

This software is copyright (c) 2014 by Toby Inkster.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.


=head1 DISCLAIMER OF WARRANTIES

THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.