forked from HPR/hpr-tools
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 | 
						|
 |