aboutsummaryrefslogtreecommitdiffstats
path: root/perl.req-from-meta
diff options
context:
space:
mode:
Diffstat (limited to 'perl.req-from-meta')
-rwxr-xr-xperl.req-from-meta33
1 files changed, 33 insertions, 0 deletions
diff --git a/perl.req-from-meta b/perl.req-from-meta
new file mode 100755
index 0000000..fdc149d
--- /dev/null
+++ b/perl.req-from-meta
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use JSON qw{ from_json };
+use YAML qw{ Load };
+
+# slurp the file
+my $path = shift;
+open my $fh, '<', $path or die "can't open $path: $!";
+my $data = do { local $/; <$fh> };
+close $fh;
+
+# parse meta - either yaml or json
+my $meta = $path =~ /\.yml$/
+ ? Load( $data )
+ : from_json( $data );
+
+# dump the requires with their version
+my $requires = $meta->{requires};
+foreach my $module ( sort keys %$requires ) {
+ next if $module eq 'perl'; # minimum perl version
+ my $version = $requires->{$module};
+ if ( $version == 0 ) {
+ print "perl($module)\n";
+ } else {
+ my $v = qx{ rpm --eval '%perl_convert_version $version' };
+ print "perl($module) >= $v";
+ }
+}
+
+exit;