From: "Kent Fredric" <kentfredric@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/perl-overlay:master commit in: scripts/, scripts/lib/
Date: Wed, 1 May 2013 22:23:40 +0000 (UTC) [thread overview]
Message-ID: <1367339543.97a9f54ae24685b93b209ad1878c309436de5847.kent@gentoo> (raw)
commit: 97a9f54ae24685b93b209ad1878c309436de5847
Author: Kent Fredric <kentfredric <AT> gmail <DOT> com>
AuthorDate: Tue Apr 30 16:32:23 2013 +0000
Commit: Kent Fredric <kentfredric <AT> gmail <DOT> com>
CommitDate: Tue Apr 30 16:32:23 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/perl-overlay.git;a=commit;h=97a9f54a
[scripts] deptools.pm : add ExtUtils-Depends to exception list
---
scripts/gen_metadata.pl | 79 ++++++++++++++++++++++++++++++++++++
scripts/lib/deptools.pm | 59 ++++++++++++++-------------
scripts/virtualmap.pl | 102 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 211 insertions(+), 29 deletions(-)
diff --git a/scripts/gen_metadata.pl b/scripts/gen_metadata.pl
new file mode 100644
index 0000000..ba31fd8
--- /dev/null
+++ b/scripts/gen_metadata.pl
@@ -0,0 +1,79 @@
+use 5.12.2;
+use strict;
+use warnings;
+
+
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use env::gentoo::perl_experimental;
+use optparse;
+use utf8;
+use XML::Smart;
+
+my $env = env::gentoo::perl_experimental->new();
+my $opts = optparse->new(
+ argv => \@ARGV,
+ help => sub { print <DATA>; return }
+);
+
+my $root = $env->root;
+use Path::Class::Dir;
+
+my $cwd = Path::Class::Dir->new('.')->absolute;
+
+my $package_dir = $cwd;
+
+if( $opts->has_long_opt('package-dir') ) {
+ $package_dir = Path::Class::Dir->new($opts->long_opt('package-dir'))->absolute;
+}
+if( not scalar grep { not $_->is_dir and $_->basename =~ /\.ebuild$/ } $package_dir->children ) {
+ die "Sorry, there are no .ebuild files in this directory, not going to create a metadata.xml file here!";
+}
+
+if( $opts->has_long_opt('new') ) {
+ say "Generating a new metdata.xml";
+ if ( -e $package_dir->file('metadata.xml')->stat ){
+ # die "Error: metadata.xml already exists here";
+ }
+ my $herd = 'perl';
+ my $maintainer_name;
+ my $maintainer_email;
+ my $cpan_id;
+
+ if( $opts->has_long_opt('herd') ) {
+ $herd = $opts->long_opt('herd');
+ }
+ if( $opts->has_long_opt('maintainer-name') ){
+ $maintainer_name = $opts->long_opt('maintainer-name');
+ }
+ if( $opts->has_long_opt('maintainer-email') ){
+ $maintainer_email = $opts->long_opt('maintainer-email');
+ }
+ if( $opts->has_long_opt('cpan-id') ) {
+ $cpan_id = $opts->long_opt('cpan-id');
+ }
+ my $xml = XML::Smart->new('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"><pkgmetadata></pkgmetadata>');
+ $xml->{pkgmetadata}->{herd}->[0] = $herd;
+ # $xml->{pkgmetadata}->{herd}->set_node(1);
+ if ( defined $maintainer_name ) {
+ $xml->{pkgmetadata}->{maintainer}->{name} = $maintainer_name;
+ # $xml->{pkgmetadata}->{maintainer}->{name}->set_node(1);
+ }
+ if( defined $maintainer_email ) {
+ $xml->{pkgmetadata}->{maintainer}->{email} = $maintainer_email;
+ # $xml->{pkgmetadata}->{maintainer}->{email}->set_node(1);
+ }
+ if( defined $cpan_id ) {
+ $xml->{pkgmetadata}->{upstream}->{'remote-id'}->content($cpan_id);
+ $xml->{pkgmetadata}->{upstream}->{'remote-id'}->{type} = 'cpan';
+ }
+
+ $xml->apply_dtd('http://www.gentoo.org/dtd/metadata.dtd');
+
+ print scalar $xml->data( nodtd => 1, meta => { 'script' => 'perl-experimental/scripts/gen_metadata.pl' } );
+}
+
+
+__DATA__
+
+__END__
diff --git a/scripts/lib/deptools.pm b/scripts/lib/deptools.pm
index 2618ae7..8bd5595 100644
--- a/scripts/lib/deptools.pm
+++ b/scripts/lib/deptools.pm
@@ -40,35 +40,36 @@ sub _vmap_perl_native {
# ::gentoo Exceptions
sub _vmap_perl_strange {
return (
- 'App-SVN-Bisect' => 'dev-util/App-SVN-Bisect',
- 'Autodia' => 'dev-utils/autodia',
- 'BioPerl' => 'sci-biology/bioperl',
- 'BioPerl-DB' => 'sci-biology/bioperl-db',
- 'BioPerl-Network' => 'sci-biology/bioperl-network',
- 'BioPerl-Run' => 'sci-biology/bioperl-run',
- 'CGI-Simple' => perl 'Cgi-Simple',
- 'Config-General' => perl 'config-general',
- 'Crypt-CBC' => perl 'crypt-cbc',
- 'Digest' => virtual 'digest-base',
- 'Date-Manip' => perl 'DateManip',
- 'GBrowse' => 'sci-biology/GBrowse',
- 'Glib' => perl 'glib-perl',
- 'I18N-LangTags' => virtual 'i18n-langtags',
- 'Image-ExifTool' => 'media-libs/exiftool',
- 'Locale-Maketext' => virtual 'locale-maketext',
- 'Net-Ping' => virtual 'net-ping',
- 'Net-Server' => perl 'net-server',
- 'Padre' => 'app-editors/padre',
- 'PathTools' => virtual 'File-Spec',
- 'Perl-Tidy' => perl 'perltidy',
- 'Pod-Parser' => virtual 'PodParser',
- 'SVK' => 'dev-vcs/svk',
- 'Set-Scalar' => perl 'set-scalar',
- 'Snapback2' => 'app-backup/snapback2',
- 'Text-Template' => perl 'text-template',
- 'XML-XSH2' => 'app-editors/XML-XSH2',
- 'YAML' => perl 'yaml',
- 'ack' => 'sys-apps/ack',
+ 'App-SVN-Bisect' => 'dev-util/App-SVN-Bisect',
+ 'Autodia' => 'dev-utils/autodia',
+ 'BioPerl' => 'sci-biology/bioperl',
+ 'BioPerl-DB' => 'sci-biology/bioperl-db',
+ 'BioPerl-Network' => 'sci-biology/bioperl-network',
+ 'BioPerl-Run' => 'sci-biology/bioperl-run',
+ 'CGI-Simple' => perl 'Cgi-Simple',
+ 'Config-General' => perl 'config-general',
+ 'Crypt-CBC' => perl 'crypt-cbc',
+ 'Date-Manip' => perl 'DateManip',
+ 'Digest' => virtual 'digest-base',
+ 'ExtUtils-Depends' => perl 'extutils-depends',
+ 'GBrowse' => 'sci-biology/GBrowse',
+ 'Glib' => perl 'glib-perl',
+ 'I18N-LangTags' => virtual 'i18n-langtags',
+ 'Image-ExifTool' => 'media-libs/exiftool',
+ 'Locale-Maketext' => virtual 'locale-maketext',
+ 'Net-Ping' => virtual 'net-ping',
+ 'Net-Server' => perl 'net-server',
+ 'Padre' => 'app-editors/padre',
+ 'PathTools' => virtual 'File-Spec',
+ 'Perl-Tidy' => perl 'perltidy',
+ 'Pod-Parser' => virtual 'PodParser',
+ 'SVK' => 'dev-vcs/svk',
+ 'Set-Scalar' => perl 'set-scalar',
+ 'Snapback2' => 'app-backup/snapback2',
+ 'Text-Template' => perl 'text-template',
+ 'XML-XSH2' => 'app-editors/XML-XSH2',
+ 'YAML' => perl 'yaml',
+ 'ack' => 'sys-apps/ack',
);
}
diff --git a/scripts/virtualmap.pl b/scripts/virtualmap.pl
new file mode 100644
index 0000000..2ace064
--- /dev/null
+++ b/scripts/virtualmap.pl
@@ -0,0 +1,102 @@
+
+{
+
+ package VirtualRecord;
+ use 5.16.0;
+ use Moo;
+
+ has virtual_name => ( is => rw =>, required => 1, );
+ has virtual_corepackage => ( is => rw =>, required => 1, );
+ has virtual_check_module => ( is => rw =>, required => 1, );
+ has repo => ( is => rw =>, required => 1, );
+
+
+}
+{
+ package VDB;
+ use 5.16.0;
+ use Quote::Sub;
+ has items => ( is => rw => , default => quote_sub(q{ [] });
+
+ sub add_item {
+ my ( $self , @args ) = @_ ;
+ my $rec = VirtualRecord->new(
+ virtual_name => $args[0],
+ virtual_corepackage => $args[1],
+ virtual_check_moodule => $args[2],
+ repo => $args[3];
+ );
+ push @{ $self->items }, $rec;
+ }
+ sub add_items {
+ my ( $self, @args ) = @_;
+ for my $rec ( @args ){
+ $self->add_item( @{$rec} );
+ }
+ }
+}
+
+sub atom_expand {
+ my $atom = shift;
+ my $package = $atom =~ s/::/-/gr;
+ my $virtual = $package =~ s/^/perl-/r;
+ return ( $virtual, $package, $atom );
+}
+my $vdb = VDB->new();
+$vdb->add_items(
+ ( map { [ atom_expand($_), 'perl-experimental' ] } qw(
+ Archive::Extract
+ B::Debug
+ B::Lint
+ constant
+ CPAN
+ CPANPLUS
+ CPANPLUS::Dist::Build
+ Devel::DProf
+ Devel::PPPort
+ Devel::SelfStubber
+ Dumpvalue
+ Exporter
+ ExtUtils::MakeMaker
+ File::Fetch
+ Filter::Simple
+ HTTP::Tiny
+ if
+ IPC::SysV
+ Log::Message
+ Log::Message::Simple
+ Math::Complex
+ Module::CoreList
+ NEXT
+ Object::Accessor
+ Pod::LaTeX
+ Pod::Perldoc
+ Pod::Plainer
+ SelfLoader
+ Term::UI
+ Unicode::Collate
+ Unicode::Normalize
+ )),
+ [ 'perl-i18n-langtags' , 'i18n-langtags', 'I18N::LangTags' , 'perl-experimental']
+);
+$vdb->add_items(
+ ( map { [ atom_expand($_), 'gentoo' ] } qw(
+ Archive::Tar
+ Attribute::Handlers
+ AutoLoader
+ CGI
+ Class::ISA
+ Compress::Raw::Bzip2
+ Compress::Raw::Zlib
+ CPAN::Meta
+ CPAN::Meta::Requirements
+ CPAN::Meta::YAML
+ Data::Dumper
+ DB_File
+ )),
+ [ 'perl-digest-base' , 'digest-base', 'Digest' , 'gentoo'],
+ ( map { [ atom_expand($_), 'gentoo' ] } qw(
+ )),
+
+);
+
next reply other threads:[~2013-05-01 22:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-01 22:23 Kent Fredric [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-04-08 23:12 [gentoo-commits] proj/perl-overlay:master commit in: scripts/, scripts/lib/ Kent Fredric
2012-04-08 23:11 Kent Fredric
2012-04-06 20:43 Kent Fredric
2012-02-25 22:14 Kent Fredric
2012-02-24 7:13 Kent Fredric
2012-01-06 16:38 Kent Fredric
2011-11-11 14:38 Kent Fredric
2011-10-31 2:48 Kent Fredric
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1367339543.97a9f54ae24685b93b209ad1878c309436de5847.kent@gentoo \
--to=kentfredric@gmail.com \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox