Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.1 KiB

2 years ago
#!/usr/bin/tclsh
# This script will find all files that include certain regular expression.
# If the files are not in the list provided, the script will return error.
set ProgName [ lindex [ split $argv0 "/" ] end ]
if { $argc < 2 } {
puts "Usage: $ProgName <expr1> <expr2> \[ <file> ... \]"
puts "\texpr1 - file list expression (vtk*.h)"
puts "\texpr2 - search string expression (vtkSet.*Macro)"
puts "\tfile - files that should be ignore"
puts ""
puts "You provided:"
foreach { a } $argv {
puts "$a"
}
exit 1
}
# Parse command line arguments
set FileExpression [ lindex $argv 0 ]
set SearchMessage [ lindex $argv 1 ]
set IgnoreFileListIn [ lrange $argv 2 end ]
set IgnoreFileList {}
foreach { file } $IgnoreFileListIn {
set IgnoreFileList "$IgnoreFileList [ glob $file ]"
}
#puts "Searching for $SearchMessage in $FileExpression"
#puts "Ignore list: $IgnoreFileList"
# Find regular expression in the string
proc FindString { InFile SearchString } {
if [ catch { open $InFile r } inchan ] {
puts stderr "Cannot open $InFile"
return 0
}
set res 0
set lcount 1
while { ! [eof $inchan] } {
gets $inchan line
if [ regexp $SearchString $line matches ] {
puts "$InFile: Found $SearchString on line $lcount"
puts "$line"
set res 1
}
set lcount [ expr $lcount + 1 ]
}
close $inchan
return $res
}
# Get all files that match expression
set files ""
if [ catch { [ set files [ glob $FileExpression ] ] } result ] {
regsub {\\\*} $FileExpression "*" FileExpression
if [ catch { [ set files [ glob $FileExpression ] ] } nresult ] {
#puts "Cannot expand the expression: \"$FileExpression\""
#puts "Error: $nresult"
#exit 1
}
}
if { [ llength $files ] < 1 } {
puts "Cannot find any files that match your file expression"
exit 0
}
set count 0
foreach { a } $files {
regsub -all {\\} $a {/} b
if { [ lsearch $IgnoreFileList $b ] >= 0 } {
puts "Ignoring: $b"
} else {
set count [ expr $count + [ FindString $a $SearchMessage ] ]
}
}
if { $count > 0 } {
puts ""
puts "Found \"$SearchMessage\" $count times"
exit 1
}
exit 0