summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbaserockimport/exts/pathname2distinfo.pl46
1 files changed, 46 insertions, 0 deletions
diff --git a/baserockimport/exts/pathname2distinfo.pl b/baserockimport/exts/pathname2distinfo.pl
new file mode 100755
index 0000000..6282573
--- /dev/null
+++ b/baserockimport/exts/pathname2distinfo.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+#
+# A helper utility, takes a Perl distribution pathname and outputs
+# a JSON representation of the distribution data.
+#
+# Copyright © 2015 Codethink Limited
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use 5.020;
+use strict;
+use English;
+use warnings;
+
+use CPAN::DistnameInfo;
+use JSON;
+
+my $argc = @ARGV;
+
+unless ($argc == 1) {
+ say STDERR "usage: $PROGRAM_NAME <pathname>";
+ exit 1;
+}
+
+my $pathname = $ARGV[0];
+my $dist_info = CPAN::DistnameInfo->new($pathname);
+
+unless (defined $dist_info) {
+ die "Couldn't construct DistInfo from pathname: $pathname";
+}
+
+my %h = $dist_info->properties;
+my $json = encode_json(\%h);
+
+say $json;