summaryrefslogtreecommitdiffstats
path: root/tools/csv
blob: f11e44497c789cff245b477afc48a20058ec451a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/perl
#
# Date:    2009-12-10
# Author:  Ole Kristian Lien
# License: GNU General Public License
#
# Parse csv-file for information
#
# needs: libtext-csv-perl

use strict;
use warnings;
use Text::CSV;

if ($#ARGV != 2 ) {
	print "usage: csv <csv-file> [<video-file> [<info>]]\n";
	exit;
}

my $file=$ARGV[0];
my $video=$ARGV[1];
my $info=$ARGV[2];

my $filename;
my $logo;
my $name;
my $title;
my $what;
my $date;
my $location;
my $license;
my @takk;
my @url;

my $csv = Text::CSV->new();
open (CSV, "<:encoding(utf8)", "$file") or die "$file: $!";

while (<CSV>) {
	if ($csv->parse($_)) {
		my @columns  = $csv->fields();

		if ($. == 1) {
				my $index;
				foreach (@columns) {
					if ($_ eq "Filename") {
						$filename=$index;
					} elsif ($_ eq "Title") {
						$title=$index;
					} elsif ($_ eq "Logo") {
						$logo=$index;
					} elsif ($_ eq "Name") {
						$name=$index;
					} elsif ($_ eq "Title") {
						$title=$index;
					} elsif ($_ eq "What") {
						$what=$index;
					} elsif ($_ eq "Date") {
						$date=$index;
					} elsif ($_ eq "Location") {
						$location=$index;
					} elsif ($_ eq "License") {
						$license=$index;
					} elsif ($_ eq "Takk") {
						push(@takk, $index); 
					} elsif ($_ eq "URL") {
						push(@url, $index); 
					}
					$index++;
				}
		}

		next if ($.	 == 1);

		if ($video eq $columns[0]) {
			if ($info eq "filename") {
				print "$columns[0]"; #$filename]";
			} elsif ($info eq "logo") {
				print "$columns[$logo]";
			} elsif ($info eq "name") {
				print "$columns[$name]";
			} elsif ($info eq "title") {
				print "$columns[$title]";
			} elsif ($info eq "what") {
				print "$columns[$what]";
			} elsif ($info eq "date") {
				print "$columns[$date]";
			} elsif ($info eq "location") {
				print "$columns[$location]";
			} elsif ($info eq "license") {
				print "$columns[$license]";
			} elsif ($info eq "takk") {
				foreach (@takk) {
					my $takk = $columns[$_];
					if($takk) {
						print "$takk\n";
					}
				}
			} elsif ($info eq "url") {
				foreach (@url) {
					my $lenke = $columns[$_];
					print "$lenke\n";
				}
			} else {
				print "$info column doesn't exist\n";
			}
		} else {
			print "$info row doesn't exist\n";
		}
	} else {
		my $err = $csv->error_input;
		print "Failed to parse line #$..: $err";
	}
}

close CSV;