module Clacky::Utils::ScriptsManager
def self.path_for(name)
-
(String, nil)-
Parameters:
-
name(String) -- script filename, e.g. "install_browser.sh"
def self.path_for(name) dest = File.join(SCRIPTS_DIR, name) File.exist?(dest) ? dest : nil end
def self.setup!
Copy bundled scripts to ~/.clacky/scripts/ if missing or outdated.
def self.setup! FileUtils.mkdir_p(SCRIPTS_DIR) current_version = Clacky::VERSION stored_version = File.exist?(VERSION_FILE) ? File.read(VERSION_FILE).strip : nil SCRIPTS.each do |script| dest = File.join(SCRIPTS_DIR, script) src = File.join(DEFAULT_SCRIPTS_DIR, script) next unless File.exist?(src) # Copy if missing or gem was upgraded if !File.exist?(dest) || stored_version != current_version FileUtils.cp(src, dest) FileUtils.chmod(0o755, dest) end end # Write version stamp after successful copy File.write(VERSION_FILE, current_version) end