Files
gtav-src/tools_ng/script/coding/clean_parser_files.rb
T
2025-09-29 00:52:08 +02:00

39 lines
1.3 KiB
Ruby
Executable File

# regenerates all parser generated files in a source tree
puts "Deleting all *_parser.h files"
Dir.glob(File.join("**", "*_parser.{h,.h??????,xsd,xsd??????}")) do |filename|
puts "Deleting #{filename}"
File.unlink(filename)
end
puts "Looking for .PSC files - deleting any generated .cpp or .h files!"
Dir.glob(File.join("**", "*.psc")) do |filename|
# check for .cpp and .h files - see if they are 1) writable and 2) appear to be generated
baseName = filename.sub(/\.psc$/, "")
Dir.glob(baseName + ".{cpp,cpp??????,h,h??????}") do |generatedName|
if File.exists?(generatedName) and File.writable?(generatedName) then
# does it look generated?
headerCheckOneResult = false
headerCheckTwoResult = false
headerCheckThreeResult = false
File.open(generatedName) do |f|
f.each do |line|
headerCheckOneResult = headerCheckOneResult || (line =~ /This file was generated by parCodeGen/)
headerCheckTwoResult = headerCheckTwoResult || (line =~ /CHANGES WILL BE OVERWRITTEN/)
headerCheckThreeResult = headerCheckThreeResult || (line =~ /DO NOT COMMIT/)
end
end
if headerCheckOneResult && headerCheckTwoResult && headerCheckThreeResult then
puts "Deleting autogenerated file #{generatedName}"
File.unlink(generatedName)
end
end
end
end