Class: Lakitu

Inherits:
Thor
  • Object
show all
Defined in:
lib/lakitu.rb

Defined Under Namespace

Modules: Configurer, FileOperator, Generator, Options Classes: Provider

Constant Summary collapse

LOCAL_SSHCONFIG_PATH =
File.expand_path '~/.ssh/local.sshconfig'
MANAGED_SSH_CONFIG_TOKEN =
"# Managed by Lakitu"
OPTIONS_FILE_PATH =
File.expand_path "~/.lakitu.yml"
SSH_PATH =
File.expand_path '~/.ssh'
SSHCONFIG_PATH =
File.expand_path '~/.ssh/config'
EDITOR =
ENV['EDITOR'] || 'nano'
EDIT_FILE_COMMAND =
"#{EDITOR} #{OPTIONS_FILE_PATH}"
DEFAULT_FORMAT =
"%{profile}-%{name}-%{id}"
EDIT_LOCAL_CONFIG_COMMAND =
"#{EDITOR} #{LOCAL_SSHCONFIG_PATH}"
@@logger =
nil

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.loggerObject



41
42
43
44
45
46
47
48
49
50
# File 'lib/lakitu.rb', line 41

def self.logger
  unless @@logger
    @@logger = ::Logger.new STDOUT
    logger.level = Lakitu::Options.options.verbose ? ::Logger::DEBUG : ::Logger::INFO
    logger.formatter = proc do |severity, datetime, progname, msg|
      "#{severity}: #{msg}\n"
    end
  end
  @@logger
end

.logger=(arg) ⇒ Object



52
53
54
# File 'lib/lakitu.rb', line 52

def self.logger= arg
  @@logger = arg
end

Instance Method Details

#configureObject



28
29
30
31
32
# File 'lib/lakitu.rb', line 28

def configure
  Lakitu::Options.merge options
  Lakitu::Configurer.find_or_create_config
  Lakitu::Configurer.edit
end

#editObject



35
36
37
38
# File 'lib/lakitu.rb', line 35

def edit
  Lakitu::Options.options[:force] = true
  invoke :generate if Lakitu::Configurer.edit_local
end

#generateObject



21
22
23
24
25
# File 'lib/lakitu.rb', line 21

def generate
  Lakitu::Options.merge options
  Lakitu::FileOperator.backup_ssh_config!
  Lakitu::FileOperator.write_ssh_config! Lakitu::Generator.generate if Lakitu::FileOperator::should_overwrite
end