Czasami chcemy usunąć wszystkie wpisy CVS jakie mamy w projekcie.
Z pomocą przychodzi poniższy skrypt który rekursywnie usuwa katalogi CVS z bieżącego katalogu.
#!/usr/bin/ruby
def deleteDir(dir)
puts "cd #{dir}"
Dir.chdir(dir)
Dir.foreach(dir) do |file|
if file != "." and file != ".."
if File.directory?(file)
deleteDir("#{dir}/#{file}")
else
puts "delete file #{file}"
File.delete(file)
end
end
end
Dir.chdir("..")
puts "delete directory #{dir}"
Dir.delete(dir)
end
def processDir(dir)
#puts "Processing directory #{dir}"
Dir.chdir(dir)
Dir.foreach(dir) do |file|
if File.directory?(file)
if file == "CVS"
puts "Deleting directory #{dir}/#{file}"
deleteDir("#{dir}/#{file}")
elsif file != "." and file != ".."
processDir("#{dir}/#{file}")
end
end
end
Dir.chdir("..")
end
puts "Working directory: #{Dir.pwd}"
processDir(Dir.pwd)
Źródło: http://www.bigbold.com/snippets/