]> git.vpit.fr Git - perl/modules/CPANPLUS-Dist-Gentoo.git/commitdiff
Set the default keywords with ACCEPT_KEYWORDS from emerge --info
authorVincent Pit <vince@profvince.com>
Sat, 20 Dec 2008 21:22:06 +0000 (22:22 +0100)
committerVincent Pit <vince@profvince.com>
Sat, 20 Dec 2008 21:22:06 +0000 (22:22 +0100)
lib/CPANPLUS/Dist/Gentoo.pm

index 7f138049d1e21dc72a317d52e20a18292c729d9a..de074580dc694861666a41e426a63ebb490e604e 100644 (file)
@@ -39,7 +39,7 @@ our $VERSION = '0.04';
 
 =head1 DESCRPITON
 
-This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the specified overlay (defaults to F</usr/local/portage>), updates the manifest, and even emerges it (together with its dependencies) if the user requires it. You need write permissions on the directory where Gentoo fetches its source files (usually F</usr/portage/distfiles>). You also need to specify the correct keyword for your architecture if it differs from the default C<x86>.
+This module is a CPANPLUS backend that recursively generates Gentoo ebuilds for a given package in the specified overlay (defaults to F</usr/local/portage>), updates the manifest, and even emerges it (together with its dependencies) if the user requires it. You need write permissions on the directory where Gentoo fetches its source files (usually F</usr/portage/distfiles>). The valid C<KEYWORDS> for the generated ebuilds are by default those given in C<ACCEPT_KEYWORDS>, but you can specify your own with the C<keywords> dist-option.
 
 The generated ebuilds are placed into the C<perl-gcpanp> category. They favour depending on C<perl-core>, C<dev-perl> or C<perl-gcpan> (in that order) rather than C<perl-gcpanp>.
 
@@ -56,6 +56,7 @@ All the methods are inherited from L<CPANPLUS::Dist::Base>. Please refer to its
 use constant CATEGORY => 'perl-gcpanp';
 
 my $overlays;
+my $default_keywords;
 
 sub format_available {
  for my $prog (qw/emerge ebuild/) {
@@ -76,12 +77,20 @@ sub format_available {
      $o =~ s/["']*$//;
      $overlays = [ map abs_path($_), grep length, split /:/, $o ];
     }
+    if (/^ACCEPT_KEYWORDS=(.*)$/m) {
+     my $k = $1;
+     $k =~ s/^["']*//;
+     $k =~ s/["']*$//;
+     $default_keywords = [ split ' ', $k ];
+    }
    }
   } else {
    error $errmsg;
   }
  }
 
+ $default_keywords = [ 'x86' ] unless defined $default_keywords;
+
  return 1;
 }
 
@@ -188,8 +197,11 @@ sub prepare {
  $stat->prepared(0);
 
  my $keywords = delete $opts{'keywords'};
- $keywords = 'x86' unless defined $keywords;
- $keywords = [ split ' ', $keywords ];
+ if (defined $keywords) {
+  $keywords = [ split ' ', $keywords ];
+ } else {
+  $keywords = $default_keywords;
+ }
  $stat->keywords($keywords);
 
  my $manifest = delete $opts{'manifest'};