diff -r cad9fdd53748 -r 7dccd04e54f9 tdroadmap_merger/gettd.pl --- a/tdroadmap_merger/gettd.pl Mon Aug 03 13:27:22 2009 +0100 +++ b/tdroadmap_merger/gettd.pl Thu Aug 06 17:06:53 2009 +0100 @@ -1,5 +1,5 @@ -#!/usr/bin/perl - +#!/usr/bin/perl + use IO::Socket; @@ -13,6 +13,7 @@ my $ispackage; + sub getpage { #arguments @@ -175,66 +176,108 @@ sub parse_bklog { #arguments - ($infile,$outfile)=@_; + ($infile,$outfile,$id)=@_; $mypkg=loadfile $infile; open ( outputfile, ">>".$outfile); open ( soutputfile, ">>"."summary_".$outfile); if ($mypkg =~ m/index\.php\/(.*?) HTTP/sg) { - + $pagename = $1; print "INFO -Processing Package $pagename \n"; $i=0; - #while ($mypkg =~ m/\\(.*?)\<\/td\>/g) { - while ($mypkg =~ m/\(.*?)\<\/tr/sg) { - + + while ($mypkg =~ m/\(.*?)\<\/tr/sg) { + next if ($& =~ m/style=\"background-color\:/s); $myfeat= $1; $myfeat =~ s/\<\/td\>/\t/sg; $myfeat =~ s/\<.*?\>//sg; $myfeat =~ s/\n//sg; - if ($myfeat =~ m/[A-z]/sg ) { + + if ($myfeat =~ m/[A-z]/sg and not $myfeat =~ m/\<\;etc/sg and + not $myfeat =~ m/\<\;Feature/sg and not $myfeat =~ m/Item not available/sg) { print outputfile "$pagename\t$myfeat\n"; $i++; } } - print soutputfile "$pagename\t$i\n"; + print soutputfile "$id\t$pagename\t$i\thttp://developer.symbian.org/wiki/index.php/$pagename\n"; + } + close (outputfile); + close (soutputfile); + + +} + -} - #help print sub printhelp { - print "\n\n version 0.4 - \ngettd.pl -t=url -d=domain \nrequired parameters:\n\t -t url containing the technology domain roadmap\n\t -d the technology domain name - \n Optional parameters\n\t-o filename ,the output is logged into the output.csv file by default\n\t-h for help - \n\t-a setup authorisation by cookie follow instructions in http://developer.symbian.org/wiki/index.php/Roadmap_merger_script#Cookies - \n\t -p adds support for package backlog analysis. just run gettd.pl -p"; + print "\n\n version 0.5 + \ngettd.pl -t=url -d=domain \n\nrequired parameters:\n\t -t url containing the technology domain roadmap\n\t -d the technology domain name + \n\nOptional parameters\n\t-o filename ,the output is logged into the output.csv file by default\n\t-h for help + \n\t-a setup authorisation by cookie follow instructions \n\tin http://developer.symbian.org/wiki/index.php/Roadmap_merger_script#Cookies + \n\t -p adds support for package backlog analysis. just run gettd.pl -p + \n\t -compare [f1] [f2] compares two package summary files for changes ignores order\n"; exit; } + +#compare bklogs +sub compare_bklogs { + #arguments + (@bklogs)=@_; + + if (not $#bklogs == 1) { printhelp;} + + + $cmd ="cut -f 2,3 ". $bklogs[0] . " | sort -u > tmp1.txt"; + + system($cmd); + + $cmd ="cut -f 2,3 ". $bklogs[1] . " | sort -u > tmp2.txt"; + system($cmd); + + exec ("diff tmp1.txt tmp2.txt | grep '[<|>]'"); + system("rm temp*.txt"); + + exit; + +} + + + + #process command line options sub cmd_options { my $help; + my @compare; - GetOptions('h' => \$help,'t=s'=> \$target_url, 'd=s' => \$tdomain , 'o=s' => \$csvfile, 'a' => \$authon , 'p' => \$ispackage); + GetOptions('h' => \$help,'t=s'=> \$target_url, 'd=s' => \$tdomain , 'o=s' => \$csvfile, + 'a' => \$authon , 'p' => \$ispackage, 'compare=s{2}' =>\@compare); + + if (@compare) { + compare_bklogs @compare; + + } if ($help) { printhelp; } + if ($ispackage) { $tdomain =" "; @@ -259,7 +302,14 @@ if (not $csvfile) { - $csvfile="output.csv"; + if (not $ispackage) { + $csvfile="output.csv"; + system ("rm output.csv"); + } else { + $csvfile="output.txt"; + system ("rm *output.txt"); + + } } print "\nINFO-output recorded in $csvfile \n"; @@ -288,7 +338,7 @@ $j=0; foreach (@bklog) { getpage("http://".$host1.$_, $host1, $auth, "pkg".$j.".txt"); - parse_bklog ("pkg".$j.".txt",$csvfile); + parse_bklog ("pkg".$j.".txt",$csvfile, $j); $j++;