summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Ipsum <richard.ipsum@codethink.co.uk>2015-08-19 15:34:01 +0000
committerRichard Ipsum <richard.ipsum@codethink.co.uk>2015-08-25 10:45:11 +0000
commit4af5e0541fe3dee884cf8f5a1f6201770254b9fa (patch)
treed64a9681ec32d89f1425c6b2bad1d461aabbcfa1
parent13f28db3efb9f6f1bf1ef69302802137493bcc8c (diff)
downloadimport-4af5e0541fe3dee884cf8f5a1f6201770254b9fa.tar.gz
Add pathname2distinfo util
Change-Id: I89ea4bbb26cff27a6a2dcb71e3101e52b8f91002
-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;