diff options
author | Kent Fredric <kentfredric@gmail.com> | 2011-08-02 23:49:01 +1200 |
---|---|---|
committer | Kent Fredric <kentfredric@gmail.com> | 2011-10-25 07:23:18 +1300 |
commit | 0dcbedd6f50d98643affd9c5d1f86530f533c3f6 (patch) | |
tree | 5bf0b680cf7dfa9da40b6195f7f12fba28e8f0fa /scripts/lib/env/gentoo/perl_experimental.pm | |
parent | [Scripts] Added a utility for getting information about a specific Perl (diff) | |
download | perl-overlay-0dcbedd6f50d98643affd9c5d1f86530f533c3f6.tar.gz perl-overlay-0dcbedd6f50d98643affd9c5d1f86530f533c3f6.tar.bz2 perl-overlay-0dcbedd6f50d98643affd9c5d1f86530f533c3f6.zip |
[scripts/lib] Add some utility modules for gentoo
Diffstat (limited to 'scripts/lib/env/gentoo/perl_experimental.pm')
-rw-r--r-- | scripts/lib/env/gentoo/perl_experimental.pm | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/scripts/lib/env/gentoo/perl_experimental.pm b/scripts/lib/env/gentoo/perl_experimental.pm new file mode 100644 index 000000000..81ac6ef69 --- /dev/null +++ b/scripts/lib/env/gentoo/perl_experimental.pm @@ -0,0 +1,63 @@ +use strict; +use warnings; + +package env::gentoo::perl_experimental; + +# FILENAME: perl_experimental.pm +# CREATED: 02/08/11 16:31:56 by Kent Fredric (kentnl) <kentfredric@gmail.com> +# ABSTRACT: Generic data relevant to the perl-experimental overlay + +use Moose; + +has '_filename' => ( + is => 'rw', + lazy_build => 1, + builder => '_build__filename', +); + +has 'root' => ( + is => 'rw', + builder => '_build_root', + required => 1, +); + +sub _build__filename { + require Path::Class::File; + return Path::Class::File->new(__FILE__)->absolute; +} + +sub _build_root { + my ($self) = shift; + my $gentoo_dir = $self->_filename->parent; + my $env_dir = $gentoo_dir->parent; + my $lib_dir = $env_dir->parent; + my $src_dir = $lib_dir->parent; + my $root = $src_dir->parent; + return $root; +} + +use colorcarp { redconfess => [ 31, 47, 'confess' ] }; + +sub check_script { + my ( $self, $scriptname ) = @_; + require Path::Class::File; + my $expected = $self->root->file( $scriptname )->absolute ; + my $got = Path::Class::File->new( $0 )->absolute; + return 1 if ( $expected eq $got ); + redconfess("The expected name for the running script \"$got\" was supposed to be \"$expected\". This likely indicates a fatal problem"); + +} + +sub metadata_dir { + my ( $self, @extra ) = @_; + return $self->root->subdir('metadata') if not @extra; + my $d = $self->root->subdir('metadata', @extra ); + $d->mkpath; + return $d; +} + + +no Moose; +__PACKAGE__->meta->make_immutable; +1; + |