2 |
use Moose::Role; |
use Moose::Role; |
3 |
|
|
4 |
use File::Slurp qw//; |
use File::Slurp qw//; |
5 |
|
use Carp qw/confess/; |
6 |
|
|
7 |
=head2 read_file |
=head2 read_file |
8 |
|
|
22 |
|
|
23 |
=head2 dir_extension |
=head2 dir_extension |
24 |
|
|
25 |
my @files = $self->dir_extension( 'var/directory/', '\.(ya?ml)$' ); |
Returns array of full paths with some extension |
26 |
|
|
27 |
|
my @files = $self->dir_extension( 'var/directory/', qw/\.(ya?ml)$/ ); |
28 |
|
|
29 |
=cut |
=cut |
30 |
|
|
31 |
sub dir_extension { |
sub dir_extension { |
32 |
my ($self,$path,$extension) = @_; |
my ($self,$path,$extension_regex) = @_; |
33 |
|
|
34 |
|
confess "extension not regex" unless ref($extension_regex) eq 'Regexp'; |
35 |
|
|
36 |
opendir(my $dir, $path) || die "can't opendir $path: $!"; |
opendir(my $dir, $path) || die "can't opendir $path: $!"; |
37 |
my @files = sort grep { m/$extension/ } readdir($dir); |
my @files = map { "$path/$_" } sort grep { $extension_regex && -f "$path/$_" } readdir($dir); |
38 |
closedir $dir; |
closedir $dir; |
39 |
return @files; |
return @files; |
40 |
} |
} |
41 |
|
|
42 |
|
sub strip_path_extension { |
43 |
|
my ( $self, $path ) = @_; |
44 |
|
$path =~ s{^(?:.*/)?([^/]+)\.[^/]+$}{$1}; |
45 |
|
return $path; |
46 |
|
} |
47 |
|
|
48 |
1; |
1; |