diff options
author | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2015-08-19 15:34:01 +0000 |
---|---|---|
committer | Richard Ipsum <richard.ipsum@codethink.co.uk> | 2015-08-25 10:45:11 +0000 |
commit | 4af5e0541fe3dee884cf8f5a1f6201770254b9fa (patch) | |
tree | d64a9681ec32d89f1425c6b2bad1d461aabbcfa1 | |
parent | 13f28db3efb9f6f1bf1ef69302802137493bcc8c (diff) | |
download | import-4af5e0541fe3dee884cf8f5a1f6201770254b9fa.tar.gz |
Add pathname2distinfo util
Change-Id: I89ea4bbb26cff27a6a2dcb71e3101e52b8f91002
-rwxr-xr-x | baserockimport/exts/pathname2distinfo.pl | 46 |
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; |