#!/usr/bin/env ruby # $Id$ require 'yaml' $config = YAML::load(File.open("control.yml")) svn_base = $config['subversion']['base_dir'] (Dir[svn_base + "/*/db"]).each {|dir| # is bdb? if FileTest.file? File.join(dir, "DB_CONFIG") broken = false (Dir[dir + '/*']).each{|file| if File.stat(file).uid == 0 broken=true break end } if broken puts "-------------------------------" puts "#{dir}: broken repository, try to recovery" system("/bin/chown -R www-data:www-data #{dir}") system("/usr/bin/sudo -u www-data svnadmin recover #{dir}/..") end end }