summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Fredric <kentfredric@gmail.com>2011-08-02 23:49:01 +1200
committerKent Fredric <kentfredric@gmail.com>2011-10-25 07:23:18 +1300
commit0dcbedd6f50d98643affd9c5d1f86530f533c3f6 (patch)
tree5bf0b680cf7dfa9da40b6195f7f12fba28e8f0fa /scripts/lib/env/gentoo/perl_experimental.pm
parent[Scripts] Added a utility for getting information about a specific Perl (diff)
downloadperl-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.pm63
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;
+