class Dir
def self.get_data_dir
def self.get_data_dir unless ENV["DATA_DIR"].nil? data_dir = ENV["DATA_DIR"] return data_dir if Dir.exist?(data_dir) end home_dir = Raykit::Environment.home_dir return home_dir if Dir.exist?(home_dir) Dir.tmpdir end
def self.get_git_directories(dir)
def self.get_git_directories(dir) git_dirs = [] Dir.chdir(dir) do Dir.glob("**/.git/index") do |f| git_dir = File.dirname(File.dirname(f)) git_dirs << git_dir end end git_dirs end
def self.get_git_urls(dir)
def self.get_git_urls(dir) urls = Set.new Dir.chdir(dir) do get_git_directories(dir).each do |git_dir| Dir.chdir(git_dir) do url = `git config --get remote.origin.url`.strip urls.add(url) end end end urls end
def self.get_text(dir, relative_name)
def self.get_text(dir, relative_name) File.read("#{dir}/#{relative_name}") end
def self.set_text(dir, relative_name, text)
def self.set_text(dir, relative_name, text) File.open("#{dir}/#{relative_name}", "w") { |f| f.write text } end