bzcsv2mw/bzcsv2mw.pl
changeset 52 71aa27e18688
child 100 24273662fe97
--- /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 (<CSV>) {
+	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