Class: DCase::Cli

Inherits:
Object
  • Object
show all
Defined in:
lib/dcase/cli.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Cli

Returns a new instance of Cli.



3
4
5
6
# File 'lib/dcase/cli.rb', line 3

def initialize(options = {})
  @config = options[:config]
  @crypto = DCase::Crypto.new(@config.password)
end

Instance Method Details

#runObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/dcase/cli.rb', line 8

def run
  supervisor = \
    case @config.side
    when 'local'
      puts "*** Local side is up, remote server port:#{@config.port}"
      DCase::Local.supervise('0.0.0.0', 53, @crypto, @config)
    when 'server'
      puts "*** Server side is up, port:#{@config.port}, with dns list: #{@config.dns_list.join(', ')}"
      DCase::Server.supervise('0.0.0.0', @crypto, @config)
    end

  puts "*** Hit Ctrl+c to stop"
  trap("INT")  { supervisor.terminate; exit }
  trap("TERM") { supervisor.terminate; exit }
  sleep
end