diff options
Diffstat (limited to 'metas/perl.d/fetchcpan')
-rwxr-xr-x | metas/perl.d/fetchcpan | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/metas/perl.d/fetchcpan b/metas/perl.d/fetchcpan deleted file mode 100755 index 076599b..0000000 --- a/metas/perl.d/fetchcpan +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -mirror=${CPANMIRROR:-ftp://cpan.pair.com} -path=/modules/02packages.details.txt.gz - -curl --silent "$mirror$path" | gzip -dc | awk ' -NR < 10 { next } -{ - file = a[split($3, a, "/")] - - if (!match(file, /[-_][vV]?[0-9]+/)) { - #print "error: failed to grok " $3 | "cat 1>&2" - next - } - ver = substr(file, RSTART+1) - dist = substr(file, 1, RSTART-1) - - sub(/[.]tar[.].*$|[.]zip$/, "", ver) - sub(/^[vV]/, "", ver) - sub(/[.]pm$/, "", dist) - - if(dist == "perl") next - - mods[dist,ver] = mods[dist,ver] $1 " " $2 "\n" - if (lessthan(dists[dist], ver)) { - dists[dist] = ver - paths[dist] = $3 - } -} - -END { - for (dist in dists) { - ver = dists[dist] - print dist, ver, paths[dist] | "sort >cpandists" - } - close("sort >cpandists") - - # Prints modules out in sorted order, too! - while(getline<"cpandists" > 0) { - print $1 "\n" mods[$1,$2] >"cpanmods" - } -} - -function lessthan (l, r) -{ - return decver(l) < decver(r) -} - -function decver (vs) -{ - pcnt = gsub(/[.]/, ".", vs) - if (pcnt < 2) return vs - - len = split(vs, vc, ".") - dec = vc[1] - for (i=2; i<=len; i++) dec += (10 ^ (-i * 3)) * vc[i] - return dec -} - -' |