Module: CCSH::Utils

Defined in:
lib/ccsh/utils.rb

Class Method Summary collapse

Class Method Details

.clear_consoleObject

clear the system console when run clear



93
94
95
# File 'lib/ccsh/utils.rb', line 93

def self.clear_console
    printf "\e[H\e[2J"
end

.debug(msg) ⇒ Object

Display a message, if debug mode is enabled



60
61
62
# File 'lib/ccsh/utils.rb', line 60

def self.debug(msg)
    puts "[DEBUG] #{msg}" if ENV['CCSH_DEBUG'] == "true"
end

.display_hosts(hosts) ⇒ Object

Pretty print the filtered hosts



43
44
45
46
47
48
49
50
# File 'lib/ccsh/utils.rb', line 43

def self.display_hosts(hosts)
    puts "Selected Hosts (option: --show-hosts):"
    hosts.each do |host|
        puts "+ Server #{host.name}: #{host.user}@#{host.hostname} => Groups: #{host.groups}"
    end

    puts
end

.exit_console(code, msg = nil) ⇒ Object

Exit the console message



84
85
86
87
88
89
# File 'lib/ccsh/utils.rb', line 84

def self.exit_console(code, msg = nil)
    puts msg if msg != nil

    puts "\nBye..."
    exit code || 0
end

.get_options(item, object, default) ⇒ Object

Given an item, hash and wanted default return, return the item if exists on array object or return the default value if the key doesn’t exist.



33
34
35
36
37
38
39
# File 'lib/ccsh/utils.rb', line 33

def self.get_options(item, object, default)
    if object.key? item
        return object[item]
    end

    return default
end

.handle_signalsObject

Handle terminal signals



72
73
74
75
76
77
78
79
80
# File 'lib/ccsh/utils.rb', line 72

def self.handle_signals
    Signal.trap('INT') do
        self.exit_console 0
    end

    Signal.trap('TERM') do
        self.exit_console 0
    end
end

.merge_defaults(defaults) ⇒ Object

Responsible to merge the defaults settings with the each hosts parameters.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ccsh/utils.rb', line 7

def self.merge_defaults(defaults)
    defaultsValues = {
        'user'        => 'root',
        'port'        => '22',
        'private_key' => '~/.ssh/id_rsa',
    }
    defaultsValues.merge!(defaults) if defaults != nil

    ssh_options = {
        'timeout' => 720,
        'ssh-rsa' => 'ssh-rsa',
    }

    if defaults['ssh_options'] != nil
        defaultsValues['ssh_options'] = ssh_options.merge!(defaults['ssh_options'])
    else
        defaultsValues['ssh_options'] = ssh_options
    end

    return defaultsValues
end

.reset_consoleObject

reset the console



99
100
101
# File 'lib/ccsh/utils.rb', line 99

def self.reset_console
    printf("\033c");
end

.valid_ssh(options) ⇒ Object



54
55
56
# File 'lib/ccsh/utils.rb', line 54

def self.valid_ssh(options)
    return true
end

.verbose(msg) ⇒ Object

Verbosely display a message, if verbose mode is enabled



66
67
68
# File 'lib/ccsh/utils.rb', line 66

def self.verbose(msg)
    puts msg if ENV['CCSH_VERBOSE'] == "true"
end