module Lakitu::FileOperator
Public Class Methods
backup_ssh_config!()
click to toggle source
# File lib/lakitu/file_operator.rb, line 27 def self.backup_ssh_config! return unless File.exist? Lakitu::SSHCONFIG_PATH unless ssh_config_is_managed? Lakitu.logger.debug "SSH config is unmanaged" if File.exist? Lakitu::LOCAL_SSHCONFIG_PATH Lakitu.logger.fatal "Can't back up unmanaged ssh config: #{Lakitu::LOCAL_SSHCONFIG_PATH} already exists." exit 1 return end Lakitu.logger.info "Moving #{Lakitu::SSHCONFIG_PATH} to #{Lakitu::LOCAL_SSHCONFIG_PATH}" FileUtils.mv Lakitu::SSHCONFIG_PATH, Lakitu::LOCAL_SSHCONFIG_PATH end end
key_path(key_name)
click to toggle source
# File lib/lakitu/file_operator.rb, line 4 def self.key_path key_name expected_key_path = File.join Lakitu::SSH_PATH, "#{key_name}.pem" return nil unless File.exist? expected_key_path Lakitu.logger.debug "Found key at #{expected_key_path}" expected_key_path end
lakitu_config_exists?()
click to toggle source
# File lib/lakitu/file_operator.rb, line 55 def self.lakitu_config_exists? File.exist? Lakitu::OPTIONS_FILE_PATH end
local_ssh_config()
click to toggle source
# File lib/lakitu/file_operator.rb, line 17 def self.local_ssh_config return File.read(Lakitu::LOCAL_SSHCONFIG_PATH) if File.exist?(Lakitu::LOCAL_SSHCONFIG_PATH) return "" end
options()
click to toggle source
# File lib/lakitu/file_operator.rb, line 67 def self.options Lakitu::Options.options end
read_lakitu_config()
click to toggle source
# File lib/lakitu/file_operator.rb, line 59 def self.read_lakitu_config File.read Lakitu::OPTIONS_FILE_PATH end
should_overwrite()
click to toggle source
# File lib/lakitu/file_operator.rb, line 22 def self.should_overwrite return true unless ssh_config_is_managed? ssh_config_is_stale? end
ssh_config_is_managed?()
click to toggle source
# File lib/lakitu/file_operator.rb, line 42 def self.ssh_config_is_managed? return false unless File.exist? Lakitu::SSHCONFIG_PATH File.read(Lakitu::SSHCONFIG_PATH).include? Lakitu::MANAGED_SSH_CONFIG_TOKEN end
ssh_config_is_stale?()
click to toggle source
# File lib/lakitu/file_operator.rb, line 47 def self.ssh_config_is_stale? ssh_config_age_minutes = (Time.now - File.mtime(Lakitu::SSHCONFIG_PATH)) / 60 effectively_stale = (ssh_config_age_minutes > options.refresh_interval_minutes or options.force) Lakitu.logger.debug "SSH Config modified #{ssh_config_age_minutes} minutes ago, threshold: #{options.refresh_interval_minutes}" Lakitu.logger.info "SSH config is still fresh, use --force to force generation" unless effectively_stale return !!effectively_stale end
write_lakitu_config(content)
click to toggle source
# File lib/lakitu/file_operator.rb, line 63 def self.write_lakitu_config content File.write Lakitu::OPTIONS_FILE_PATH, content end
write_ssh_config!(content)
click to toggle source
# File lib/lakitu/file_operator.rb, line 11 def self.write_ssh_config! content raise RuntimeError.new("Won't overwrite unmanaged ssh config") unless ssh_config_is_managed? or !File.exist?(Lakitu::SSHCONFIG_PATH) Lakitu.logger.info "Writing ssh config to #{Lakitu::SSHCONFIG_PATH}" File.write Lakitu::SSHCONFIG_PATH, content end