lib/raykit/dir.rb
# frozen_string_literal: true require "tmpdir" require_relative "./environment" class Dir def self.get_text(dir, relative_name) File.read("#{dir}/#{relative_name}") end def self.set_text(dir, relative_name, text) File.open("#{dir}/#{relative_name}", "w") { |f| f.write text } end 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) 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_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 end