72 lines
1.5 KiB
Plaintext
72 lines
1.5 KiB
Plaintext
|
#!/usr/bin/env perl
|
||
|
#===============================================================================
|
||
|
#
|
||
|
# FILE: show_metadata
|
||
|
#
|
||
|
# USAGE: ./show_metadata
|
||
|
#
|
||
|
# DESCRIPTION: Script to display a file of metadata in a readable format
|
||
|
#
|
||
|
# OPTIONS: ---
|
||
|
# REQUIREMENTS: ---
|
||
|
# BUGS: ---
|
||
|
# NOTES: ---
|
||
|
# AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
|
||
|
# VERSION: 0.0.2
|
||
|
# CREATED: 2014-06-09 16:17:11
|
||
|
# REVISION: 2014-06-15 12:26:58
|
||
|
#
|
||
|
#===============================================================================
|
||
|
|
||
|
use 5.010;
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
use utf8;
|
||
|
|
||
|
use List::Util qw{max};
|
||
|
use Text::CSV_XS;
|
||
|
|
||
|
#
|
||
|
# Version number (manually incremented)
|
||
|
#
|
||
|
our $VERSION = '0.0.2';
|
||
|
|
||
|
#
|
||
|
# Script name
|
||
|
#
|
||
|
( my $PROG = $0 ) =~ s|.*/||mx;
|
||
|
|
||
|
#
|
||
|
# Enable Unicode mode
|
||
|
#
|
||
|
binmode STDOUT, ":encoding(UTF-8)";
|
||
|
binmode STDERR, ":encoding(UTF-8)";
|
||
|
|
||
|
my $mdata = shift;
|
||
|
die "Usage: $PROG filename\n" unless $mdata;
|
||
|
|
||
|
die "File $mdata does not exist\n" unless -e $mdata;
|
||
|
|
||
|
my $csv = Text::CSV_XS->new({ binary => 1 });
|
||
|
|
||
|
open( my $fh, "<:encoding(utf8)", $mdata )
|
||
|
or die "Unable to open $mdata: $!\n";
|
||
|
|
||
|
my @cols = @{ $csv->getline($fh) };
|
||
|
my $max = max map { length($_) } @cols;
|
||
|
my $row = {};
|
||
|
$csv->bind_columns( \@{$row}{@cols} );
|
||
|
while ( $csv->getline($fh) ) {
|
||
|
foreach my $key (@cols) {
|
||
|
printf "%*s: %s\n", $max, $key, $row->{$key};
|
||
|
}
|
||
|
print '-' x 80, "\n";
|
||
|
}
|
||
|
|
||
|
close($fh);
|
||
|
|
||
|
exit;
|
||
|
|
||
|
# vim: syntax=perl:ts=8:sw=4:et:ai:tw=78:fo=tcrqn21:fdm=marker
|
||
|
|