forked from HPR/hpr-tools
		
	
		
			
	
	
		
			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
							 | 
						||
| 
								 | 
							
								
							 |