diff -r fa7a3cc6effd -r 6d08f4a05d93 imgtools/buildrom/tools/checkincludeslash.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imgtools/buildrom/tools/checkincludeslash.pl Fri Jun 25 18:11:34 2010 +0800 @@ -0,0 +1,120 @@ +#!/usr/bin/perl + +use Getopt::Long; + +use constant TOOL_VERSION=>"0.1"; + +my $help; +my $dir; +my $convert; +my $logfile; +&processcmdline(); + +open (LOG, ">$logfile") or die "cannot open log file $logfile\n"; +&checkdir($dir); +close LOG; + +sub processcmdline +{ + GetOptions("h" => \$help, "l=s" => \$logfile, "c" => \$convert); + + if ($help) + { + print_usage(); + exit 0; + } + $logfile = "checkincludeslash.log" if (!defined $logfile); + + $dir = shift @ARGV; + if (!defined $dir || !-d $dir) + { + print_usage(); + die "\nERROR: directory missing!!\n" if (!defined $dir); + die "\nERROR: directory $dir does not exist!!\n" if (!-d $dir); + } +} + +sub checkdir +{ + my $path = shift; + return if (!-d $path); + opendir(DIR,$path); + my @entries = readdir(DIR); + closedir(DIR); + my $entry; + foreach $entry (@entries) { + next if (($entry eq ".") || ($entry eq "..")); + my $item = "$path/$entry"; + if (-d $item) { + &checkdir($item); + }else { + next if ($entry !~ /.*\.[a-z]by$/i); + + &convobyfile($item, "$item.bak"); + } + } +} + +sub convobyfile +{ + my $src = shift; + my $dst = shift; + open (SRC, "<$src"); + open (DST, ">$dst") if($convert); + + my $line; + while($line = ) + { + if ($line =~ /#\s*include\s*(<|\")(.*\\.*)(>|\")/) + { + print "Found content in file $src\n"; + print LOG "Found content in file $src\n"; + print "current line is $line"; + print LOG "current line is $line"; + if($convert) + { + my $path = $2; + my $pathorg = $path; + $pathorg =~ s-\\-\\\\-g; + $path =~ s-\\-\/-g; + $line =~ s-$pathorg-$path-g; + print "converted line is $line"; + print LOG "converted line is $line"; + } + print "\n"; + print LOG "\n"; + } + print DST $line if($convert); + } + close SRC; + if($convert) + { + close DST; + + unlink "$src"; + rename ("$dst", "$src"); + } +} + +sub print_usage +{ + print "\nCheckincludeslash - Check back slash tool V".TOOL_VERSION."\n"; + print "Copyright (c) 2010 Nokia Corporation.\n\n"; + print <] + +Check oby/iby files cursively in the . +When it find back slash in include line in the files like \"\#include \", +it will report the line in log file. If with -c option it will convert the back slash +to forward slash like \"\#include \". +The is the directory contain all the oby/iby files. +Usually it should be /epoc32/rom/ and it will be checked cursively. + +Options: + -l - the log file to record the log, + if not specfied it is \"checkincludeslash.log\" + -h - displays this help + -c - convert the back slash to forward slash. +USAGE_EOF +} \ No newline at end of file