aboutsummaryrefslogtreecommitdiff
path: root/maintainers/scripts/generate-cpan-package
diff options
context:
space:
mode:
Diffstat (limited to 'maintainers/scripts/generate-cpan-package')
-rwxr-xr-xmaintainers/scripts/generate-cpan-package120
1 files changed, 0 insertions, 120 deletions
diff --git a/maintainers/scripts/generate-cpan-package b/maintainers/scripts/generate-cpan-package
deleted file mode 100755
index 2817e23e2fa..00000000000
--- a/maintainers/scripts/generate-cpan-package
+++ /dev/null
@@ -1,120 +0,0 @@
-#! /bin/sh -e
-
-name="$1"
-[ -n "$name" ] || { echo "no name"; exit 1; }
-
-cpan -D "$name" > cpan-info
-
-url="$(echo $(cat cpan-info | sed '6!d'))"
-[ -n "$url" ] || { echo "no URL"; exit 1; }
-url="mirror://cpan/authors/id/$url"
-echo "URL = $url" >&2
-
-version=$(cat cpan-info | grep 'CPAN: ' | awk '{ print $2 }')
-echo "VERSION = $version"
-
-declare -a xs=($(PRINT_PATH=1 nix-prefetch-url "$url"))
-hash=${xs[0]}
-path=${xs[1]}
-echo "HASH = $hash" >&2
-
-namedash="$(echo $name | sed s/::/-/g)-$version"
-
-attr=$(echo $name | sed s/:://g)
-
-rm -rf cpan_tmp
-mkdir cpan_tmp
-tar xf "$path" -C cpan_tmp
-
-shopt -s nullglob
-meta=$(echo cpan_tmp/*/META.json)
-if [ -z "$meta" ]; then
- yaml=$(echo cpan_tmp/*/META.yml)
- [ -n "$yaml" ] || { echo "no meta file"; exit 1; }
- meta=$(echo $yaml | sed s/\.yml$/.json/)
- perl -e '
- use YAML;
- use JSON;
- local $/;
- $x = YAML::Load(<>);
- print encode_json $x;
- ' < $yaml > $meta
-fi
-
-description="$(json abstract < $meta | perl -e '$x = <>; print uc(substr($x, 0, 1)), substr($x, 1);')"
-homepage="$(json resources.homepage < $meta)"
-if [ -z "$homepage" ]; then
- #homepage="$(json meta-spec.url < $meta)"
- true
-fi
-
-license="$(json license < $meta | json -a 2> /dev/null || true)"
-if [ -z "$license" ]; then
- license="$(json -a license < $meta)"
-fi
-license="$(echo $license | sed s/perl_5/perl5/)"
-
-f() {
- local type="$1"
- perl -e '
- use JSON;
- local $/;
- $x = decode_json <>;
- if (defined $x->{prereqs}) {
- $x2 = $x->{prereqs}->{'$type'}->{requires};
- } elsif ("'$type'" eq "runtime") {
- $x2 = $x->{requires};
- } elsif ("'$type'" eq "configure") {
- $x2 = $x->{configure_requires};
- } elsif ("'$type'" eq "build") {
- $x2 = $x->{build_requires};
- }
- foreach my $y (keys %{$x2}) {
- next if $y eq "perl";
- eval "use $y;";
- if (!$@) {
- print STDERR "skipping Perl-builtin module $y\n";
- next;
- }
- print $y, "\n";
- };
- ' < $meta | sed s/:://g
-}
-
-confdeps=$(f configure)
-builddeps=$(f build)
-testdeps=$(f test)
-runtimedeps=$(f runtime)
-
-buildInputs=$(echo $(for i in $confdeps $builddeps $testdeps; do echo $i; done | sort | uniq))
-propagatedBuildInputs=$(echo $(for i in $runtimedeps; do echo $i; done | sort | uniq))
-
-echo "===" >&2
-
-cat <<EOF
- $attr = buildPerlPackage {
- name = "$namedash";
- src = fetchurl {
- url = $url;
- sha256 = "$hash";
- };
-EOF
-if [ -n "$buildInputs" ]; then
- cat <<EOF
- buildInputs = [ $buildInputs ];
-EOF
-fi
-if [ -n "$propagatedBuildInputs" ]; then
- cat <<EOF
- propagatedBuildInputs = [ $propagatedBuildInputs ];
-EOF
-fi
-cat <<EOF
- meta = {
- homepage = $homepage;
- description = "$description";
- license = "$license";
- };
- };
-EOF
-