13: def create_box(hostname, opts={})
14: ld [:hostname, hostname, opts, caller[0]]
15: opts = {
16: :debug => false,
17: :user => current_machine_user,
18: :ostype => current_machine_os || :unix,
19: :impltype => :linux,
20: :info => STDOUT,
21: :paranoid => false
22: }.merge opts
23:
24: nickname = hostname
25: if hostname.kind_of? Rudy::Machine
26: hostname, nickname = hostname.dns_public, hostname.name
27: end
28:
29: box = ::Rye::Box.new hostname, opts
30: box.nickname = nickname
31:
32: local_keys = Rye.keys
33: box.add_keys local_keys if local_keys.is_a?(Array)
34: box.add_key user_keypairpath(opts[:user])
35:
36:
37:
38:
39: if !@@global.parallel && !@@global.quiet
40:
41: box.pre_command_hook do |cmd, user, host, nickname|
42: print_command user, nickname, cmd
43: end
44: end
45:
46: if @@global.verbose > 0 && !@@global.quiet
47: box.stdout_hook do |content|
48: li content
49: end
50:
51: box.post_command_hook do |ret|
52: print_response ret
53: end
54: end
55:
56: box.exception_hook(::Rye::Err, &rbox_exception_handler)
57: box.exception_hook(Exception, &rbox_exception_handler)
58:
59:
60:
61:
62:
63: box
64: end