sistero 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/sistero +30 -75
- data/lib/sistero/version.rb +1 -1
- data/sistero.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c31adbdb186b28911fef49e9cc7ff7ca3f247a7e
|
4
|
+
data.tar.gz: f19fb31fb796ac1d1781741ce02000f00780e733
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 578488ef88bc13ef6692627ad4f34d6dd86411490a6c45c97a941cde850e0433538f61d5dac2be3ca34c015749c37a73c4086a6c4e8573c34dc2e62cef14c4f5
|
7
|
+
data.tar.gz: a726152b1fd6e1fe310ed6e357ba4ed2bab50a11d3638777c0f664584750cf0a9e1339dcc5248ac41e5671fe550d695b4f591da9d9d1512a7ff250866cc5fd1c
|
data/bin/sistero
CHANGED
@@ -2,106 +2,61 @@
|
|
2
2
|
|
3
3
|
require 'bundler/setup'
|
4
4
|
require 'sistero'
|
5
|
+
require 'moister'
|
5
6
|
|
6
7
|
module Sistero::Command
|
7
|
-
@config = OpenStruct.new
|
8
|
-
|
9
|
-
@subcommands = {}
|
10
|
-
@op = nil
|
11
|
-
|
12
|
-
def self.subcommand name, banner, &block
|
13
|
-
@subcommands[name] = { name: name, banner: banner, parse_cmdline: block }
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.with_help help_op
|
17
|
-
help_op.on '-h', '--help', 'show this help message' do
|
18
|
-
puts help_op
|
19
|
-
exit
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.parse_opts op, args
|
24
|
-
args = @config.args = args.clone
|
25
|
-
op.order! args
|
26
|
-
raise "must supply subcommand" if args.empty?
|
27
|
-
|
28
|
-
action = args.first
|
29
|
-
subcmd_meta = @subcommands[action]
|
30
|
-
raise "invalid subcommand: #{action}" unless @subcommands.has_key? action
|
31
|
-
args.shift
|
32
|
-
|
33
|
-
@config.action = action
|
34
|
-
OptionParser.new do |subop|
|
35
|
-
subop.banner = subcmd_meta[:banner]
|
36
|
-
with_help subop
|
37
|
-
parse_cmdline = subcmd_meta[:parse_cmdline]
|
38
|
-
parse_cmdline.call(subop) if parse_cmdline
|
39
|
-
end.order! args
|
40
|
-
end
|
41
|
-
|
42
8
|
def self.run args
|
43
|
-
|
44
|
-
@op = op
|
9
|
+
config = nil
|
45
10
|
|
11
|
+
Moister::SubcommandOptionParser.new do |op|
|
46
12
|
op.banner = 'usage: sistero [global options] command [command options]'
|
47
|
-
op.on '-h', '--help', 'show this help message' do
|
48
|
-
max_len = @subcommands.values.map { |subcommand| subcommand[:name].length }.max
|
49
13
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
prefix += ' ' * (max_len - prefix.length + 2)
|
55
|
-
puts " #{prefix} #{subcommand[:banner]}"
|
14
|
+
op.for_all do |op|
|
15
|
+
op.on_tail '-h', '--help', 'show this help message' do
|
16
|
+
puts op
|
17
|
+
exit
|
56
18
|
end
|
57
|
-
exit
|
58
19
|
end
|
59
20
|
|
60
|
-
op.on '-c', '--config file', 'override path to config file'
|
61
|
-
@config.cfg_file_path = cfg_file_path
|
62
|
-
end
|
21
|
+
op.on '-c', '--config file', 'override path to config file', 'cfg_file_path'
|
63
22
|
|
64
|
-
subcommand 'ssh', 'ssh to vm' do |subop|
|
65
|
-
subop.on '-o val', 'add ssh options'
|
66
|
-
@config.ssh_options = ssh_options
|
67
|
-
end
|
23
|
+
op.subcommand 'ssh', 'ssh to vm' do |subop|
|
24
|
+
subop.on '-o val', 'add ssh options', 'ssh_options'
|
68
25
|
end
|
69
26
|
|
70
|
-
subcommand 'create', 'create vm'
|
71
|
-
|
72
|
-
subcommand '
|
73
|
-
|
74
|
-
subcommand '
|
75
|
-
|
76
|
-
subcommand '
|
77
|
-
|
78
|
-
subcommand 'ssh-keys', 'show ssh keys'
|
79
|
-
|
80
|
-
subcommand 'sizes', 'show possible sizes'
|
27
|
+
op.subcommand 'create', 'create vm'
|
28
|
+
op.subcommand 'destroy', 'destroy vm'
|
29
|
+
op.subcommand 'list', 'list vms'
|
30
|
+
op.subcommand 'show-config', 'show configuration'
|
31
|
+
op.subcommand 'ssh-keys', 'show ssh keys'
|
32
|
+
op.subcommand 'sizes', 'show possible sizes'
|
33
|
+
op.subcommand 'regions', 'show possible regions'
|
34
|
+
op.subcommand 'images', 'show images'
|
81
35
|
|
82
|
-
|
36
|
+
parsed_cfg = op.parse(args).to_h
|
83
37
|
|
84
|
-
|
38
|
+
parsed_cfg.merge! parsed_cfg[:config]
|
39
|
+
parsed_cfg.delete :config
|
85
40
|
|
86
|
-
|
41
|
+
config = OpenStruct.new parsed_cfg
|
87
42
|
end
|
88
43
|
|
89
|
-
unless
|
44
|
+
unless config.command
|
90
45
|
puts 'please supply a command, see --help'
|
91
46
|
exit
|
92
47
|
end
|
93
48
|
|
94
|
-
sistero = Sistero::Instance.new({ cfg_file_path:
|
95
|
-
case
|
49
|
+
sistero = Sistero::Instance.new({ cfg_file_path: config.cfg_file_path })
|
50
|
+
case config.command
|
96
51
|
when 'ssh'
|
97
|
-
vm_name, *ssh_args =
|
52
|
+
vm_name, *ssh_args = config.positionals
|
98
53
|
# TODO: pass ssh_args
|
99
|
-
sistero.ssh_to_vm(vm_name, ssh_options:
|
54
|
+
sistero.ssh_to_vm(vm_name, ssh_options: config.ssh_options)
|
100
55
|
when 'create'
|
101
|
-
vms =
|
56
|
+
vms = config.positionals.empty? ? [nil] : config.positionals
|
102
57
|
vms.each { |vm_name| sistero.create_vm(vm_name) }
|
103
58
|
when 'destroy'
|
104
|
-
vms =
|
59
|
+
vms = config.positionals.empty? ? [nil] : config.positionals
|
105
60
|
vms.each { |vm_name| sistero.destroy_vm(vm_name) }
|
106
61
|
when 'list'
|
107
62
|
sistero.list_vms()
|
@@ -121,4 +76,4 @@ module Sistero::Command
|
|
121
76
|
end
|
122
77
|
end
|
123
78
|
|
124
|
-
Sistero::Command::run ARGV
|
79
|
+
Sistero::Command::run ARGV
|
data/lib/sistero/version.rb
CHANGED
data/sistero.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sistero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Pike
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.3'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: moister
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.2'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.2'
|
69
83
|
description: Profile based digital ocean cluster management command line tool.
|
70
84
|
email:
|
71
85
|
- github@chilon.net
|