apkbuild-cpan: run perltidy over the source
it was a mismatch of mixed indents
This commit is contained in:
parent
0e555d58a7
commit
d4b2415fb1
235
apkbuild-cpan.in
235
apkbuild-cpan.in
|
@ -87,7 +87,9 @@ sub read_assignments_from_file {
|
|||
my %mline = $text =~ /^(\w+)\s*=\s*\"([^\"]*)\"$/mg;
|
||||
my %hash = ( %sline, %mline );
|
||||
|
||||
my $authors = join("\n", $text =~ /^# Contributor: .*$/mg, $text =~ /^# Maintainer: .*$/mg);
|
||||
my $authors = join( "\n",
|
||||
$text =~ /^# Contributor: .*$/mg,
|
||||
$text =~ /^# Maintainer: .*$/mg );
|
||||
$hash{'authors'} = $authors if length($authors) > 1;
|
||||
|
||||
my $provides = $text =~ m/^provides=\"(.*)\"".*$/mg;
|
||||
|
@ -101,7 +103,9 @@ sub read_assignments_from_file {
|
|||
|
||||
sub map_cpan_to_apk {
|
||||
my ($cpan_distrib) = @_;
|
||||
return $package_mappings->{$cpan_distrib} if exists $package_mappings->{$cpan_distrib};
|
||||
return $package_mappings->{$cpan_distrib}
|
||||
if exists $package_mappings->{$cpan_distrib};
|
||||
|
||||
# most packages are named according to the
|
||||
# distribution name
|
||||
return 'perl-' . lc $cpan_distrib;
|
||||
|
@ -115,7 +119,8 @@ sub write_apkbuild {
|
|||
my ( $distdata, $apkbuild, $moddata ) = @_;
|
||||
|
||||
my $cpanid = $distdata->{id};
|
||||
$cpanid = substr($cpanid, 0, 1) . "/" . substr($cpanid, 0, 2) . "/$cpanid";
|
||||
$cpanid =
|
||||
substr( $cpanid, 0, 1 ) . "/" . substr( $cpanid, 0, 2 ) . "/$cpanid";
|
||||
|
||||
my $authors = undef;
|
||||
my $replaces = undef;
|
||||
|
@ -135,14 +140,19 @@ sub write_apkbuild {
|
|||
|
||||
my $pkgver = $moddata->{version} =~ s/^[^0-9]+//r;
|
||||
if ( $pkgver ne $moddata->{version} ) {
|
||||
|
||||
# Appears to only be needed for Class::DBI
|
||||
$builddir = "\$srcdir/\$_pkgreal-" . $moddata->{version};
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$builddir = "\$srcdir/\$_pkgreal-\$pkgver";
|
||||
}
|
||||
|
||||
my %repl = (
|
||||
authors => ($authors or "# Contributor: $packager\n# Maintainer: $packager"),
|
||||
authors => (
|
||||
$authors
|
||||
or "# Contributor: $packager\n# Maintainer: $packager"
|
||||
),
|
||||
pkgname => map_cpan_to_apk( $moddata->{distribution} ),
|
||||
pkgreal => $moddata->{distribution},
|
||||
pkgver => $moddata->{version} =~ s/^[^0-9]+//r,
|
||||
|
@ -185,11 +195,13 @@ sub parse_deps {
|
|||
say " $module is part of core perl since $perlver.";
|
||||
next;
|
||||
}
|
||||
|
||||
# map module name to package name
|
||||
$response = $ua->get("https://fastapi.metacpan.org/module/$module");
|
||||
$response->is_success or die $response->status_line;
|
||||
my $moddata = $json->decode( $response->decoded_content );
|
||||
$moddata->{error} and die "Error trying to locate $module: $moddata->{error}\n";
|
||||
$moddata->{error}
|
||||
and die "Error trying to locate $module: $moddata->{error}\n";
|
||||
$distfiles->{$module} = $moddata->{distribution};
|
||||
}
|
||||
|
||||
|
@ -198,7 +210,8 @@ sub parse_deps {
|
|||
$response = $ua->get("https://fastapi.metacpan.org/module/$_");
|
||||
$response->is_success or die $response->status_line;
|
||||
my $distdata = $json->decode( $response->decoded_content );
|
||||
$distdata->{error} and die "Error trying to locate $_: $distdata->{error}\n";
|
||||
$distdata->{error}
|
||||
and die "Error trying to locate $_: $distdata->{error}\n";
|
||||
|
||||
my $pkgname = map_cpan_to_apk( $distdata->{distribution} );
|
||||
$deps .= "$pkgname " unless $deps =~ m/^$pkgname$/;
|
||||
|
@ -210,13 +223,14 @@ sub parse_deps {
|
|||
}
|
||||
|
||||
sub prepare_tree {
|
||||
system("abuild checksum unpack prepare") == 0 or
|
||||
die "abuild checksum failed";
|
||||
system("abuild checksum unpack prepare") == 0
|
||||
or die "abuild checksum failed";
|
||||
}
|
||||
|
||||
sub update_functions {
|
||||
my $apkbuild = read_apkbuild;
|
||||
my $metaprefix = "src/" . $apkbuild->{'_pkgreal'} . "-" . $apkbuild->{'pkgver'} . "/";
|
||||
my $metaprefix =
|
||||
"src/" . $apkbuild->{'_pkgreal'} . "-" . $apkbuild->{'pkgver'} . "/";
|
||||
my $build_func;
|
||||
my $check_func;
|
||||
my $package_func;
|
||||
|
@ -241,7 +255,8 @@ check() {
|
|||
./Build test
|
||||
}
|
||||
EOF
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$build_func = <<'EOF';
|
||||
build() {
|
||||
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
|
||||
|
@ -263,12 +278,12 @@ check() {
|
|||
EOF
|
||||
}
|
||||
|
||||
$text =~ s/^build\(\) \{.*?^\}\n/$build_func/smg or
|
||||
die "Can't replace build function APKBUILD";
|
||||
$text =~ s/^package\(\) \{.*?^\}\n/$package_func/smg or
|
||||
die "Can't replace package function APKBUILD";
|
||||
$text =~ s/^check\(\) \{.*?^\}\n/$check_func/smg or
|
||||
die "Can't replace check function APKBUILD";
|
||||
$text =~ s/^build\(\) \{.*?^\}\n/$build_func/smg
|
||||
or die "Can't replace build function APKBUILD";
|
||||
$text =~ s/^package\(\) \{.*?^\}\n/$package_func/smg
|
||||
or die "Can't replace package function APKBUILD";
|
||||
$text =~ s/^check\(\) \{.*?^\}\n/$check_func/smg
|
||||
or die "Can't replace check function APKBUILD";
|
||||
|
||||
open my $fh, '>', "APKBUILD" or die;
|
||||
print $fh $text;
|
||||
|
@ -277,9 +292,10 @@ EOF
|
|||
|
||||
sub sort_pkgs_by_orig {
|
||||
my $sort_order = shift;
|
||||
my @array_to_sort = split / /, shift;;
|
||||
my @array_to_sort = split / /, shift;
|
||||
|
||||
s/[\t\n\r\f]/ /g for $sort_order; # remove embedded new lines from sort order
|
||||
s/[\t\n\r\f]/ /g
|
||||
for $sort_order; # remove embedded new lines from sort order
|
||||
s/\h+/ /g for $sort_order; # remove embedded spaces from sort order
|
||||
|
||||
my @sort_order = split / /, $sort_order;
|
||||
|
@ -294,10 +310,12 @@ sub sort_pkgs_by_orig {
|
|||
foreach (@array_to_sort) {
|
||||
my $pos = $position_of{$_};
|
||||
if ( !defined $pos ) {
|
||||
|
||||
# not found in sort order so add to the end
|
||||
$sorted{$_} = $count;
|
||||
$count++;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$sorted{$_} = $pos;
|
||||
}
|
||||
}
|
||||
|
@ -354,13 +372,15 @@ sub do_depends {
|
|||
$metaprefix = "src/" . $apkbuild->{'_name'} . "-" . $modver . "/";
|
||||
}
|
||||
elsif ( exists $apkbuild->{'_realpkgname'} ) {
|
||||
$metaprefix = "src/" . $apkbuild->{'_realpkgname'} . "-" . $modver . "/";
|
||||
$metaprefix =
|
||||
"src/" . $apkbuild->{'_realpkgname'} . "-" . $modver . "/";
|
||||
}
|
||||
elsif ( exists $apkbuild->{'_pkg_real'} ) {
|
||||
$metaprefix = "src/" . $apkbuild->{'_pkg_real'} . "-" . $modver . "/";
|
||||
}
|
||||
else {
|
||||
die "Unable to find meta file directory - check APKBUILD Perl Module Name";
|
||||
die
|
||||
"Unable to find meta file directory - check APKBUILD Perl Module Name";
|
||||
}
|
||||
|
||||
$metaprefix =~ s/-\$pkgver//g;
|
||||
|
@ -368,7 +388,9 @@ sub do_depends {
|
|||
|
||||
my $meta;
|
||||
|
||||
foreach my $metafile ("MYMETA.json", "META.json", "MYMETA.yml", "META.yml") {
|
||||
foreach
|
||||
my $metafile ( "MYMETA.json", "META.json", "MYMETA.yml", "META.yml" )
|
||||
{
|
||||
if ( -e "$metaprefix$metafile" ) {
|
||||
say "Using meta information from $metafile";
|
||||
$meta = CPAN::Meta->load_file("$metaprefix$metafile");
|
||||
|
@ -380,14 +402,17 @@ sub do_depends {
|
|||
my $abstract = $meta->abstract;
|
||||
say "Abstract: $abstract";
|
||||
|
||||
my $license = join " OR ", map {$license_mappings->{$_} or $_} $meta->license;
|
||||
my $license = join " OR ",
|
||||
map { $license_mappings->{$_} or $_ } $meta->license;
|
||||
say "License: $license";
|
||||
|
||||
my $deps = parse_deps( $meta->effective_prereqs->requirements_for('runtime', 'requires') );
|
||||
my $deps = parse_deps(
|
||||
$meta->effective_prereqs->requirements_for( 'runtime', 'requires' ) );
|
||||
|
||||
if ( defined $oldapkbuild->{'depends'} ) {
|
||||
if ( defined $oldapkbuild->{'cpandepends'} ) {
|
||||
$oldapkbuild->{'depends'} =~ s/\$cpandepends/$oldapkbuild->{'cpandepends'}/g;
|
||||
$oldapkbuild->{'depends'} =~
|
||||
s/\$cpandepends/$oldapkbuild->{'cpandepends'}/g;
|
||||
}
|
||||
my $libs = $oldapkbuild->{'depends'};
|
||||
$libs =~ s/perl\-\w+[-\w+]+//g;
|
||||
|
@ -400,13 +425,16 @@ sub do_depends {
|
|||
|
||||
if ( $deps eq '' ) {
|
||||
$deps = "perl";
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$deps = format_depends( "perl " . $deps );
|
||||
|
||||
}
|
||||
|
||||
say "CPAN runtime Required: $deps";
|
||||
say "CPAN runtime Recommended: " . parse_deps( $meta->effective_prereqs->requirements_for('runtime', 'recommends'));
|
||||
say "CPAN runtime Recommended: "
|
||||
. parse_deps(
|
||||
$meta->effective_prereqs->requirements_for( 'runtime', 'recommends' ) );
|
||||
|
||||
my $makedeps = parse_deps(
|
||||
$meta->effective_prereqs->requirements_for( 'configure', 'requires' ),
|
||||
|
@ -416,42 +444,59 @@ sub do_depends {
|
|||
);
|
||||
|
||||
if ( -e "$metaprefix/Build.PL" ) {
|
||||
$makedeps = "$makedeps perl-module-build" unless $makedeps =~ m/^perl-module-build$/;
|
||||
$makedeps = "$makedeps perl-module-build"
|
||||
unless $makedeps =~ m/^perl-module-build$/;
|
||||
}
|
||||
|
||||
if ( defined $oldapkbuild->{'makedepends'} ) {
|
||||
if ( defined $oldapkbuild->{'cpanmakedepends'} ) {
|
||||
$oldapkbuild->{'makedepends'} =~ s/\$cpanmakedepends/$oldapkbuild->{'cpanmakedepends'}/g;
|
||||
$oldapkbuild->{'makedepends'} =~
|
||||
s/\$cpanmakedepends/$oldapkbuild->{'cpanmakedepends'}/g;
|
||||
}
|
||||
my $libs = $oldapkbuild->{'makedepends'};
|
||||
$libs =~ s/perl\-\w+[-\w+]+//g;
|
||||
$makedeps = $makedeps . " " . $libs;
|
||||
$makedeps = sort_pkgs_by_orig ($oldapkbuild->{'makedepends'}, $makedeps);
|
||||
$makedeps =
|
||||
sort_pkgs_by_orig( $oldapkbuild->{'makedepends'}, $makedeps );
|
||||
}
|
||||
|
||||
if ( $makedeps eq '' ) {
|
||||
$makedeps = "perl-dev";
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$makedeps = format_depends( "perl-dev " . $makedeps );
|
||||
}
|
||||
$makedeps =~ s/ +$//g;
|
||||
|
||||
say "CPAN build deps: $makedeps";
|
||||
say " CPAN build requires: " . parse_deps($meta->effective_prereqs->requirements_for('configure', 'requires'), $meta->effective_prereqs->requirements_for('build', 'requires'));
|
||||
say " CPAN build recommends: " . parse_deps($meta->effective_prereqs->requirements_for('configure', 'recommends'), $meta->effective_prereqs->requirements_for('build', 'recommends'));
|
||||
say " CPAN build requires: "
|
||||
. parse_deps(
|
||||
$meta->effective_prereqs->requirements_for( 'configure', 'requires' ),
|
||||
$meta->effective_prereqs->requirements_for( 'build', 'requires' )
|
||||
);
|
||||
say " CPAN build recommends: "
|
||||
. parse_deps(
|
||||
$meta->effective_prereqs->requirements_for( 'configure', 'recommends' ),
|
||||
$meta->effective_prereqs->requirements_for( 'build', 'recommends' )
|
||||
);
|
||||
|
||||
my $checkdeps = parse_deps($meta->effective_prereqs->requirements_for('test', 'requires'), $meta->effective_prereqs->requirements_for('test', 'recommends'));
|
||||
my $checkdeps = parse_deps(
|
||||
$meta->effective_prereqs->requirements_for( 'test', 'requires' ),
|
||||
$meta->effective_prereqs->requirements_for( 'test', 'recommends' )
|
||||
);
|
||||
|
||||
if ( defined $oldapkbuild->{'checkdepends'} ) {
|
||||
if ( defined $oldapkbuild->{'cpancheckdepends'} ) {
|
||||
$oldapkbuild->{'checkdepends'} =~ s/\$cpancheckdepends/$oldapkbuild->{'cpancheckdepends'}/g;
|
||||
$oldapkbuild->{'checkdepends'} =~
|
||||
s/\$cpancheckdepends/$oldapkbuild->{'cpancheckdepends'}/g;
|
||||
}
|
||||
my $libs = $oldapkbuild->{'checkdepends'};
|
||||
$libs =~ s/perl\-\w+[-\w+]+//g;
|
||||
if ( $libs ne "" ) {
|
||||
$checkdeps = $checkdeps . " " . $libs;
|
||||
}
|
||||
$checkdeps = sort_pkgs_by_orig ($oldapkbuild->{'checkdepends'}, $checkdeps);
|
||||
$checkdeps =
|
||||
sort_pkgs_by_orig( $oldapkbuild->{'checkdepends'}, $checkdeps );
|
||||
}
|
||||
|
||||
$checkdeps = format_depends($checkdeps);
|
||||
|
@ -459,30 +504,30 @@ sub do_depends {
|
|||
|
||||
my $text = read_file "APKBUILD";
|
||||
if ( $abstract && $abstract ne 'unknown' ) {
|
||||
$text =~ s/^pkgdesc=\"([^\"]*)\"$/pkgdesc=\"$abstract\"/mg or
|
||||
die "Can't find pkgdesc line in APKBUILD";
|
||||
$text =~ s/^pkgdesc=\"([^\"]*)\"$/pkgdesc=\"$abstract\"/mg
|
||||
or die "Can't find pkgdesc line in APKBUILD";
|
||||
}
|
||||
if ( length(`find $metaprefix -name '*.xs'`) ) {
|
||||
if ( !exists $oldapkbuild->{'arch'} ) {
|
||||
$text =~ s/^arch=\"([^\"]*)\"$/arch="all"/mg or
|
||||
die "Can't find arch line in APKBUILD";
|
||||
$text =~ s/^arch=\"([^\"]*)\"$/arch="all"/mg
|
||||
or die "Can't find arch line in APKBUILD";
|
||||
}
|
||||
}
|
||||
if ( $license ne 'unknown' ) {
|
||||
$text =~ s/^license=\"([^\"]*)\"$/license=\"$license\"/mg or
|
||||
die "Can't find license line in APKBUILD";
|
||||
$text =~ s/^license=\"([^\"]*)\"$/license=\"$license\"/mg
|
||||
or die "Can't find license line in APKBUILD";
|
||||
}
|
||||
$text =~ s/^depends=\"([^\"]*)\"$/depends=\"$deps\"/mg or
|
||||
$text =~ s/(license=.*\n)/$1depends=\"$deps\"/gm or
|
||||
die "Can't insert depends line in APKBUILD";
|
||||
$text =~ s/^depends=\"([^\"]*)\"$/depends=\"$deps\"/mg
|
||||
or $text =~ s/(license=.*\n)/$1depends=\"$deps\"/gm
|
||||
or die "Can't insert depends line in APKBUILD";
|
||||
|
||||
$text =~ s/^makedepends=\"([^\"]*)\"$/makedepends=\"$makedeps\"/mg or
|
||||
$text =~ s/(depends=.*\n)/$1makedepends=\"$makedeps\"/gm or
|
||||
die "Can't insert makedepends line in APKBUILD";
|
||||
$text =~ s/^makedepends=\"([^\"]*)\"$/makedepends=\"$makedeps\"/mg
|
||||
or $text =~ s/(depends=.*\n)/$1makedepends=\"$makedeps\"/gm
|
||||
or die "Can't insert makedepends line in APKBUILD";
|
||||
|
||||
$text =~ s/^checkdepends=\"([^\"]*)\"$/checkdepends=\"$checkdeps\"/mg or
|
||||
$text =~ s/(makedepends=.*\n)/$1checkdepends=\"$checkdeps\"/gm or
|
||||
die "Can't insert checkdepends line in APKBUILD";
|
||||
$text =~ s/^checkdepends=\"([^\"]*)\"$/checkdepends=\"$checkdeps\"/mg
|
||||
or $text =~ s/(makedepends=.*\n)/$1checkdepends=\"$checkdeps\"/gm
|
||||
or die "Can't insert checkdepends line in APKBUILD";
|
||||
|
||||
# remove empty variables
|
||||
$text =~ s/.*=""\n//g;
|
||||
|
@ -498,34 +543,45 @@ sub get_data {
|
|||
|
||||
if ( exists $apkbuild->{_realname} ) {
|
||||
$pkgreal = $apkbuild->{_realname};
|
||||
} elsif (exists $apkbuild->{_pkgreal}) {
|
||||
}
|
||||
elsif ( exists $apkbuild->{_pkgreal} ) {
|
||||
$pkgreal = $apkbuild->{_pkgreal};
|
||||
} elsif (exists $apkbuild->{_pkgname}) {
|
||||
}
|
||||
elsif ( exists $apkbuild->{_pkgname} ) {
|
||||
$pkgreal = $apkbuild->{_pkgname};
|
||||
} elsif (exists $apkbuild->{_name}) {
|
||||
}
|
||||
elsif ( exists $apkbuild->{_name} ) {
|
||||
$pkgreal = $apkbuild->{_name};
|
||||
} elsif (exists $apkbuild->{_realpkgname}) {
|
||||
}
|
||||
elsif ( exists $apkbuild->{_realpkgname} ) {
|
||||
$pkgreal = $apkbuild->{_realpkgname};
|
||||
} elsif (exists $apkbuild->{_pkg_real}) {
|
||||
}
|
||||
elsif ( exists $apkbuild->{_pkg_real} ) {
|
||||
$pkgreal = $apkbuild->{_pkg_real};
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
my $module = '';
|
||||
my $distribution = '';
|
||||
while ( ( my $key, my $value ) = each(%$apkbuild) ) {
|
||||
|
||||
# Do not parse any depends lines to not find incorrect module
|
||||
if ( $key =~ m/.*depends.*/ ) {
|
||||
next;
|
||||
}
|
||||
|
||||
# Try to find a perl module name in APKBUILD
|
||||
if ( $value =~ m/((\w+::)+\w+)/g ) {
|
||||
|
||||
# Match Perl Module names containing ::
|
||||
$module .= "$1 " unless $module =~ m/$1/;
|
||||
}
|
||||
elsif ( $value =~ m/(([A-Z]\w+-)+\w+)/ ) {
|
||||
|
||||
# Match possible distribution names with -
|
||||
$distribution .= "$1 " unless $distribution =~ m/ *$1 /;
|
||||
}
|
||||
elsif ( $value =~ m/.*release\/([A-Z]\w+).*/ ) {
|
||||
|
||||
# Match Single Word Perl Module Name after release in URL?
|
||||
$distribution .= "$1 " unless $distribution =~ m/ *$1 /;
|
||||
}
|
||||
|
@ -537,12 +593,13 @@ sub get_data {
|
|||
my $type = '';
|
||||
if ( $_ =~ m/::/ ) {
|
||||
$type = 'module';
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$type = 'release';
|
||||
}
|
||||
|
||||
my $response = $ua->get("https://fastapi.metacpan.org/$type/$_");
|
||||
$response->is_success or next;;
|
||||
$response->is_success or next;
|
||||
|
||||
my $moddata = $json->decode( $response->decoded_content );
|
||||
$moddata->{error} and next;
|
||||
|
@ -555,15 +612,20 @@ sub get_data {
|
|||
$pkgreal =~ s/-\$pkgver//g;
|
||||
|
||||
my $response = $ua->get("https://fastapi.metacpan.org/release/$pkgreal");
|
||||
$response->is_success or
|
||||
die $response->status_line . " unable to find $pkgreal verify Perl Module name in APKBUILD\n";
|
||||
$response->is_success
|
||||
or die $response->status_line
|
||||
. " unable to find $pkgreal verify Perl Module name in APKBUILD\n";
|
||||
my $distdata = $json->decode( $response->decoded_content );
|
||||
$distdata->{error} and die "Error trying to locate $pkgreal: $distdata->{error}\n";
|
||||
$distdata->{error}
|
||||
and die "Error trying to locate $pkgreal: $distdata->{error}\n";
|
||||
|
||||
$response = $ua->get("https://fastapi.metacpan.org/module/$distdata->{main_module}");
|
||||
$response =
|
||||
$ua->get("https://fastapi.metacpan.org/module/$distdata->{main_module}");
|
||||
$response->is_success or die $response->status_line;
|
||||
my $moddata = $json->decode( $response->decoded_content );
|
||||
$moddata->{error} and die "Error trying to locate $distdata->{main_module}: $moddata->{error}\n";
|
||||
$moddata->{error}
|
||||
and die
|
||||
"Error trying to locate $distdata->{main_module}: $moddata->{error}\n";
|
||||
|
||||
return ( $apkbuild, $distdata, $moddata );
|
||||
}
|
||||
|
@ -571,7 +633,8 @@ sub get_data {
|
|||
my $abuild_conf = read_assignments_from_file("/etc/abuild.conf");
|
||||
$packager = $abuild_conf->{PACKAGER} if $abuild_conf->{PACKAGER};
|
||||
|
||||
my $user_abuild_conf = read_assignments_from_file($ENV{"HOME"} . "/.abuild/abuild.conf");
|
||||
my $user_abuild_conf =
|
||||
read_assignments_from_file( $ENV{"HOME"} . "/.abuild/abuild.conf" );
|
||||
$packager = $user_abuild_conf->{PACKAGER} if $user_abuild_conf->{PACKAGER};
|
||||
|
||||
my $command = $ARGV[0];
|
||||
|
@ -583,12 +646,15 @@ if ($command eq "create") {
|
|||
my $response = $ua->get("https://fastapi.metacpan.org/module/$module");
|
||||
$response->is_success or die $response->status_line;
|
||||
my $moddata = $json->decode( $response->decoded_content );
|
||||
$moddata->{error} and die "Error trying to locate $module: $moddata->{error}\n";
|
||||
$moddata->{error}
|
||||
and die "Error trying to locate $module: $moddata->{error}\n";
|
||||
|
||||
$response = $ua->get("https://fastapi.metacpan.org/release/$moddata->{distribution}");
|
||||
$response =
|
||||
$ua->get("https://fastapi.metacpan.org/release/$moddata->{distribution}");
|
||||
$response->is_success or die $response->status_line;
|
||||
my $distdata = $json->decode( $response->decoded_content );
|
||||
$distdata->{error} and die "Error trying to locate $module: $distdata->{error}\n";
|
||||
$distdata->{error}
|
||||
and die "Error trying to locate $module: $distdata->{error}\n";
|
||||
|
||||
my $apkname = map_cpan_to_apk $distdata->{metadata}{name};
|
||||
mkdir $apkname;
|
||||
|
@ -597,11 +663,14 @@ if ($command eq "create") {
|
|||
prepare_tree;
|
||||
update_functions;
|
||||
do_depends $moddata->{version};
|
||||
} elsif ($command eq "recreate" ) {
|
||||
}
|
||||
elsif ( $command eq "recreate" ) {
|
||||
|
||||
#TODO: likely should keep pkgrel the same on recreate
|
||||
my ( $apkbuild, $distdata, $moddata ) = get_data;
|
||||
my $pkgver = $moddata->{version} =~ s/^[^0-9]+//r;
|
||||
if ( $pkgver ne $apkbuild->{pkgver} ) {
|
||||
|
||||
#Reset pkgrel on upgrade on recreate
|
||||
say "Upgrading CPAN module from $apkbuild->{pkgver} to $pkgver";
|
||||
$apkbuild->{pkgrel} = 0;
|
||||
|
@ -610,7 +679,8 @@ if ($command eq "create") {
|
|||
prepare_tree;
|
||||
update_functions;
|
||||
do_depends( $moddata->{version}, $apkbuild );
|
||||
} elsif ($command eq "upgrade") {
|
||||
}
|
||||
elsif ( $command eq "upgrade" ) {
|
||||
my ( $apkbuild, $distdata, $moddata ) = get_data;
|
||||
|
||||
my $pkgver = $moddata->{version} =~ s/^[^0-9]+//r;
|
||||
|
@ -618,9 +688,10 @@ if ($command eq "create") {
|
|||
say "Upgrading CPAN module from $apkbuild->{pkgver} to $pkgver";
|
||||
|
||||
my $text = read_file "APKBUILD";
|
||||
$text =~ s/^pkgver=(.*)$/pkgver=$pkgver/mg or
|
||||
die "Can't find pkgver line in APKBUILD";
|
||||
$text =~ s/^pkgver=(.*)$/pkgver=$pkgver/mg
|
||||
or die "Can't find pkgver line in APKBUILD";
|
||||
$text =~ s/^pkgrel=(.*)$/pkgrel=0/mg;
|
||||
|
||||
#FIXME: review whether this works over time
|
||||
# It deletes the blank line before the checksum
|
||||
# So prepare_tree does not insert extra blank line
|
||||
|
@ -630,20 +701,26 @@ if ($command eq "create") {
|
|||
close $fh;
|
||||
prepare_tree;
|
||||
do_depends( $moddata->{version}, $apkbuild );
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
say "Up-to-data with CPAN";
|
||||
}
|
||||
} elsif ($command eq "check") {
|
||||
}
|
||||
elsif ( $command eq "check" ) {
|
||||
my ( $apkbuild, $distdata, $moddata ) = get_data;
|
||||
my $pkgver = $moddata->{version} =~ s/^[^0-9]+//r;
|
||||
say "$apkbuild->{pkgname}: Latest version: $pkgver Packaged version: $apkbuild->{pkgver}";
|
||||
say
|
||||
"$apkbuild->{pkgname}: Latest version: $pkgver Packaged version: $apkbuild->{pkgver}";
|
||||
if ( $pkgver ne $apkbuild->{pkgver} ) {
|
||||
exit(1);
|
||||
}
|
||||
} elsif ($command eq "update") {
|
||||
}
|
||||
elsif ( $command eq "update" ) {
|
||||
prepare_tree;
|
||||
do_depends;
|
||||
} else {
|
||||
say "Usage: apkbuild-cpan [create <Module::Name> | check | recreate | update | upgrade]";
|
||||
}
|
||||
else {
|
||||
say
|
||||
"Usage: apkbuild-cpan [create <Module::Name> | check | recreate | update | upgrade]";
|
||||
exit;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue