Usuwanie wpisów CVS

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/

a to nie lepiej zrobic poprostu

Pod niksami
find . -name CVS | xargs rm -fr

Pewnie, że można to zrobić na tysiąc róznych sposobów. Można w cvs export, w Bashu, w Perlu, w PHP w Javie i można też w Rubim :slight_smile: