diff options
author | Justin Davis <jrcd83@gmail.com> | 2012-01-16 00:30:11 +0100 |
---|---|---|
committer | Justin Davis <jrcd83@gmail.com> | 2012-01-16 00:30:11 +0100 |
commit | 44f4b5d167f9efef47786e60d1153ad2c58b4319 (patch) | |
tree | 3e7e30f87123c48629faa73d29e0c20af869c43c /lib/metas/perl | |
parent | f6cbce0d137f44554a233b4adf9022df6dc7fde9 (diff) | |
download | genpkg-44f4b5d167f9efef47786e60d1153ad2c58b4319.tar.gz genpkg-44f4b5d167f9efef47786e60d1153ad2c58b4319.tar.xz |
Move metas/ and templ/ under ~/.genpkg.
Diffstat (limited to 'lib/metas/perl')
-rwxr-xr-x | lib/metas/perl | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/lib/metas/perl b/lib/metas/perl deleted file mode 100755 index 4b61175..0000000 --- a/lib/metas/perl +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env perl - -use warnings 'FATAL' => 'all'; -use strict; - -use File::Fetch; -use IO::Handle; # for autoflush -use Cwd; - -my $PROG = 'metas/perl'; -my %BADNAMES = ('perl-libwww' => 'libwww-perl'); - -sub err -{ - print STDERR "$PROG: ", @_, "\n"; - exit 1; -} - -sub matchdist -{ - my($dist) = @_; - - # Refresh our local list of distributions if needed. - my $var = $ENV{'PKGVAR'} - or err('PKGVAR env variable is unset'); - - if(!-f "$var/cpandists" || -M "$var/cpandists" > 1) { - print STDERR "$PROG: Refreshing local CPAN data... "; - my $cwd = getcwd(); - chdir $var or die "chdir: $!"; - system 'fetchcpan'; - die "FAILED\n" unless($? == 0); - print STDERR "OK\n"; - chdir $cwd or die "chdir: $!"; - } - - open(DISTS, '<', "$var/cpandists") or err("open: $!"); - while(<DISTS>) { - my @f = split; - my $d = lc $f[0]; $d =~ tr/-_/--/s; - next unless($d eq lc($dist)); - close(DISTS); - return ($f[0], $f[2]); - } - close(DISTS); - return (); -} - -sub fetchdist -{ - my($cpath) = @_; - my $file = $cpath; $file =~ s{^.*/}{}; - if(-f $file) { - print STDERR "$file already downloaded.\n"; - return; - } - - my $mirror = $ENV{'CPANMIRROR'} || 'ftp://cpan.pair.com'; - my $url = "${mirror}/authors/id/${cpath}"; - - print STDERR "Downloading $file... "; - my $ff = File::Fetch->new('uri' => $url); - die "FAILED\n" unless($ff->fetch()); - print STDERR "OK\n"; -} - -sub main -{ - my $dist = shift or die "usage: $PROG [package name]\n"; - - my $guess; - if($BADNAMES{$dist}){ - $dist = $BADNAMES{$dist}; - }elsif($dist =~ s/^perl-// == 0){ - $guess = 1; - $dist = "app-$dist"; - } - - STDERR->autoflush(1); - my ($realname, $cpath) = matchdist($dist); - unless($realname){ - if($guess){ - return 2 - }else{ - ## Return a hard error to makepkgmeta if perl- package. - err(qq{failed to find perl dist similar to '$dist'}); - return 1 - } - } - fetchdist($cpath); - - print <<"END_META"; -url -https://metacpan.org/release/$realname - -source -http://search.cpan.org/CPAN/authors/id/$cpath - -END_META - - my $file = $cpath; $file =~ s{.*/}{}; - system 'perl-dist' => $file; - return $?; -} - -exit main(@ARGV); |