diff -r b6b0d741e326 -r 71aa27e18688 bzcsv2mw/bzcsv2mw.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bzcsv2mw/bzcsv2mw.pl Wed Sep 16 11:41:59 2009 +0100 @@ -0,0 +1,105 @@ +#!perl -w + +# Copyright (c) 2009 Symbian Foundation Ltd +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Symbian Foundation Ltd - initial contribution. +# +# Contributors: +# +# Description: bzcsv2mw.pl - simple script for converting CSV report files from Bugzilla to MediaWiKi text files +# + +use strict; +use warnings; +use Text::CSV; +use Getopt::Long; + +sub Usage($) + { + my ($msg) = @_; + + print "$msg\n\n" if ($msg ne ""); + + print <<'EOF'; + + bzcsv2mw.pl - simple script for converting CSV report files from Bugzilla to MediaWiki text files + + Options: + + -csv CSV file generated by Bugzilla + -h|-help print this help information + +EOF + exit (1); + } + +my $file = ""; +my $help = 0; + +if (!GetOptions( + "csv=s" => \$file, + "h|help" => \$help, + )) + { + Usage("Invalid argument"); + } + +Usage("Too few arguments....use -csv") if ($file eq ""); +Usage("") if ($help); + +#my $file = $ARGV[0]; +my $csv = Text::CSV->new(); +my $mwtxt = $file.".mw.txt"; + +open (CSV, "<", $file) or die $!; +open (MWTXT,">$mwtxt"); +print MWTXT "{|\n"; + +my %headermap = ("bug_id"=>"ID","bug_severity"=>"Severity","reporter"=>"Reporter","bug_status"=>"Status","product"=>"Package", + "short_desc"=>"Title","priority"=>"Priority","assigned_to"=>"Assigned To","resolution"=>"Resolution","op_sys"=>"OS",); + +my $header=0; +while () { + if ($csv->parse($_)) + { + my @columns = $csv->fields(); + + if(!$header) + { + $header=1; + foreach (@columns) + { + #my $val = $_; + #if(defined $headermap{$val}){$val = $headermap{$val};} + print MWTXT "!".$headermap{$_}."\n"; + } + } + else + { + if ($columns[0] =~ m/(\d+)/) + { + $columns[0] = "[http://developer.symbian.org/bugs/show_bug.cgi?id=$columns[0] Bug$columns[0]]"; + } + foreach (@columns) + { + print MWTXT "|$_\n"; + } + } + } + else + { + my $err = $csv->error_input; + print "Failed to parse line: $err"; + } + + print MWTXT "|----\n"; +} + +close CSV; +print MWTXT "|}\n"; +close MWTXT; \ No newline at end of file