/usr/share/perl5/ExtUtils/Helpers/Unix.pm is in libextutils-helpers-perl 0.021-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 | package ExtUtils::Helpers::Unix;
{
$ExtUtils::Helpers::Unix::VERSION = '0.021';
}
use strict;
use warnings FATAL => 'all';
use Exporter 5.57 'import';
our @EXPORT = qw/make_executable split_like_shell detildefy/;
use Carp qw/croak/;
use Config;
use Text::ParseWords 3.24 qw/shellwords/;
sub make_executable {
my $filename = shift;
my $current_mode = (stat $filename)[2] + 0;
if (-T $filename) {
open my $fh, '<:raw', $filename;
my @lines = <$fh>;
if (@lines and $lines[0] =~ s{ \A \#! \s* (?:/\S+/)? perl \b (.*) \z }{$Config{startperl}$1}xms) {
open my $out, '>:raw', "$filename.new" or croak "Couldn't open $filename.new: $!";
print $out @lines;
close $out;
rename $filename, "$filename.bak" or croak "Couldn't rename $filename to $filename.bak";
rename "$filename.new", $filename or croak "Couldn't rename $filename.new to $filename";
unlink "$filename.bak";
}
}
chmod $current_mode | oct(111), $filename;
return;
}
sub split_like_shell {
my ($string) = @_;
return if not defined $string;
$string =~ s/^\s+|\s+$//g;
return if not length $string;
return shellwords($string);
}
sub detildefy {
my $value = shift;
# tilde with optional username
for ($value) {
s{ ^ ~ (?= /|$)} [ $ENV{HOME} || (getpwuid $>)[7] ]ex or # tilde without user name
s{ ^ ~ ([^/]+) (?= /|$) } { (getpwnam $1)[7] || "~$1" }ex; # tilde with user name
}
return $value;
}
1;
# ABSTRACT: Unix specific helper bits
=pod
=head1 NAME
ExtUtils::Helpers::Unix - Unix specific helper bits
=head1 VERSION
version 0.021
=for Pod::Coverage make_executable
split_like_shell
detildefy
=head1 AUTHORS
=over 4
=item *
Ken Williams <kwilliams@cpan.org>
=item *
Leon Timmermans <leont@cpan.org>
=back
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2004 by Ken Williams, Leon Timmermans.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
__END__
|