Module: Lakitu::FileOperator
- Defined in:
- lib/lakitu/file_operator.rb
Class Method Summary collapse
- .backup_ssh_config! ⇒ Object
- .key_path(key_name) ⇒ Object
- .lakitu_config_exists? ⇒ Boolean
- .local_ssh_config ⇒ Object
- .options ⇒ Object
- .read_lakitu_config ⇒ Object
- .should_overwrite ⇒ Object
- .ssh_config_is_managed? ⇒ Boolean
- .ssh_config_is_stale? ⇒ Boolean
- .write_lakitu_config(content) ⇒ Object
- .write_ssh_config!(content) ⇒ Object
Class Method Details
.backup_ssh_config! ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# 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) ⇒ Object
4 5 6 7 8 9 |
# 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? ⇒ Boolean
55 56 57 |
# File 'lib/lakitu/file_operator.rb', line 55 def self.lakitu_config_exists? File.exist? Lakitu::OPTIONS_FILE_PATH end |
.local_ssh_config ⇒ Object
17 18 19 20 |
# 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 ⇒ Object
67 68 69 |
# File 'lib/lakitu/file_operator.rb', line 67 def self. Lakitu::Options. end |
.read_lakitu_config ⇒ Object
59 60 61 |
# File 'lib/lakitu/file_operator.rb', line 59 def self.read_lakitu_config File.read Lakitu::OPTIONS_FILE_PATH end |
.should_overwrite ⇒ Object
22 23 24 25 |
# 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? ⇒ Boolean
42 43 44 45 |
# 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? ⇒ Boolean
47 48 49 50 51 52 53 |
# 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 > .refresh_interval_minutes or .force) Lakitu.logger.debug "SSH Config modified #{ssh_config_age_minutes} minutes ago, threshold: #{.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) ⇒ Object
63 64 65 |
# 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) ⇒ Object
11 12 13 14 15 |
# 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 |