dawn-cli 0.9.0 → 0.9.1
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/lib/dawn/cli/commands/app.rb +10 -0
- data/lib/dawn/cli/commands/local.rb +0 -10
- data/lib/dawn/cli/parser.rb +167 -137
- data/lib/dawn/cli/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5648f22bab9ddaf3fc4b15aa7d442e8cd14dde2d
|
4
|
+
data.tar.gz: 755487a68afc3f624344ad1fcb171147cbe9b3eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32142f2d3d226bf03a43fc4b6fe6c3f73173d5a56a8a4c4df47eb20225c9d16ffd81e0d5d9909bb55a359e6313464c3a44cc22d7ac9e0047ea103e1571f0554f
|
7
|
+
data.tar.gz: ee71bb731ff703315c787c644680359c53a6958aed662a3325990947346daf39746902c5100cced416d8ad332bb3508efca9c5ec79aa5c39de9a54e7d5218eed
|
@@ -6,6 +6,16 @@ module Dawn
|
|
6
6
|
|
7
7
|
extend Dawn::CLI::Helpers
|
8
8
|
|
9
|
+
# "Create a new dawn App (with git; setup)"
|
10
|
+
def self.create(appname=nil)
|
11
|
+
app = try_create_app appname
|
12
|
+
# since its possible for dawn to create a new app, with a random name
|
13
|
+
# setting the appname again based on the real app's name is required
|
14
|
+
appname = app.name
|
15
|
+
git_add_dawn_remote app
|
16
|
+
say "\tAPP\t#{app.name}"
|
17
|
+
end
|
18
|
+
|
9
19
|
# "Displays a list of all the apps you have deployed to dawn"
|
10
20
|
def self.list
|
11
21
|
say format_apps(Dawn::App.all)
|
@@ -10,16 +10,6 @@ module Dawn
|
|
10
10
|
Dawn::API.health_check
|
11
11
|
end
|
12
12
|
|
13
|
-
# "Create a new dawn App (with git; setup)"
|
14
|
-
def self.create(appname=nil)
|
15
|
-
app = try_create_app appname
|
16
|
-
# since its possible for dawn to create a new app, with a random name
|
17
|
-
# setting the appname again based on the real app's name is required
|
18
|
-
appname = app.name
|
19
|
-
git_add_dawn_remote app
|
20
|
-
say "\tAPP\t#{app.name}"
|
21
|
-
end
|
22
|
-
|
23
13
|
end
|
24
14
|
end
|
25
15
|
end
|
data/lib/dawn/cli/parser.rb
CHANGED
@@ -1,93 +1,131 @@
|
|
1
1
|
require "docopt"
|
2
2
|
require 'highline/import'
|
3
|
+
require "dawn/cli/commands"
|
4
|
+
require "dawn/cli/version"
|
3
5
|
|
4
6
|
module Dawn
|
5
7
|
module CLI
|
6
|
-
DOC_TOP =
|
7
|
-
|
8
|
-
|
8
|
+
DOC_TOP =
|
9
|
+
%Q(usage: dawn [-a APPNAME] [-h] [<command>] [<argv>...]
|
10
|
+
|
11
|
+
Options:
|
12
|
+
-a APPNAME, --app=APPNAME specify app.
|
13
|
+
-h, --help display help.
|
14
|
+
--version print version.
|
9
15
|
|
10
16
|
Commands:
|
11
|
-
create [<name>]
|
12
|
-
ls
|
13
|
-
ps
|
14
|
-
login
|
17
|
+
create [<name>] initialize a new app in this the wd.
|
18
|
+
ls print all deployed apps.
|
19
|
+
ps print all running gears for current app.
|
20
|
+
login setup your netrc login details for dawn.
|
15
21
|
logs [-f]
|
16
|
-
-f, --follow
|
17
|
-
app
|
18
|
-
domain
|
19
|
-
drain
|
20
|
-
env
|
21
|
-
key
|
22
|
-
release
|
23
|
-
run
|
24
|
-
|
25
|
-
Options:
|
26
|
-
-a APPNAME, --app=APPNAME specify app
|
27
|
-
-h, --help display help
|
28
|
-
--version print version
|
22
|
+
-f, --follow follow logs.
|
23
|
+
app App control command.
|
24
|
+
domain Domain control command.
|
25
|
+
drain Drain control command.
|
26
|
+
env ENV control command.
|
27
|
+
key Key control command.
|
28
|
+
release Release control command.
|
29
|
+
run run command on current app.
|
29
30
|
)
|
30
31
|
|
31
32
|
DOC_SUBCOMMAND = {}
|
32
|
-
DOC_SUBCOMMAND["app"] =
|
33
|
-
|
34
|
-
|
33
|
+
DOC_SUBCOMMAND["app"] =
|
34
|
+
%Q(usage: dawn app
|
35
|
+
dawn app delete
|
36
|
+
dawn app restart
|
37
|
+
dawn app scale <gear_modifier>...
|
38
|
+
|
39
|
+
Options:
|
40
|
+
-h, --help display help.
|
35
41
|
|
36
42
|
Commands:
|
37
|
-
delete
|
38
|
-
restart
|
39
|
-
scale
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
43
|
+
delete remove the app from dawn.
|
44
|
+
restart self explanatory.
|
45
|
+
scale scale app services.
|
46
|
+
gear_modifier takes the format
|
47
|
+
type=number, type+number or type-number
|
48
|
+
EG: web=3 db+1
|
49
|
+
|
50
|
+
if no command is given, prints all available apps.
|
45
51
|
)
|
46
52
|
|
47
|
-
DOC_SUBCOMMAND["domain"] =
|
48
|
-
|
49
|
-
|
53
|
+
DOC_SUBCOMMAND["domain"] =
|
54
|
+
%Q(usage: dawn domain
|
55
|
+
dawn domain add <url>
|
56
|
+
dawn domain delete <url>
|
57
|
+
|
58
|
+
Options:
|
59
|
+
-h, --help display help.
|
50
60
|
|
51
61
|
Commands:
|
52
|
-
add
|
53
|
-
delete
|
62
|
+
add add a new domain to the current app.
|
63
|
+
delete remove a domain from the current app.
|
64
|
+
|
65
|
+
if no command is given, prints all domains for current app.
|
66
|
+
|
54
67
|
)
|
55
68
|
|
56
|
-
DOC_SUBCOMMAND["drain"] =
|
57
|
-
|
58
|
-
dawn drain
|
69
|
+
DOC_SUBCOMMAND["drain"] =
|
70
|
+
%Q(usage: dawn drain
|
71
|
+
dawn drain add <url>
|
72
|
+
dawn drain delete <url>
|
73
|
+
|
74
|
+
Options:
|
75
|
+
-h, --help display help.
|
59
76
|
|
60
77
|
Commands:
|
61
|
-
add
|
62
|
-
delete
|
78
|
+
add add a new log drain to current app.
|
79
|
+
delete remove a log drain from the current app.
|
80
|
+
|
81
|
+
if no command is given, prints all drains for current app.
|
63
82
|
)
|
64
83
|
|
65
|
-
DOC_SUBCOMMAND["env"] =
|
66
|
-
|
67
|
-
|
84
|
+
DOC_SUBCOMMAND["env"] =
|
85
|
+
%Q(usage: dawn env
|
86
|
+
dawn env get <key_name>...
|
87
|
+
dawn env set <key_name=value>...
|
88
|
+
dawn env unset <key_name>...
|
89
|
+
|
90
|
+
Options:
|
91
|
+
-h, --help display help.
|
68
92
|
|
69
93
|
Commands:
|
70
|
-
get
|
71
|
-
set
|
72
|
-
unset
|
94
|
+
get print filtered ENV variables.
|
95
|
+
set set ENV variables.
|
96
|
+
unset unset ENV variables.
|
97
|
+
|
98
|
+
if no command is given, prints the ENV for the current app.
|
73
99
|
)
|
74
100
|
|
75
|
-
DOC_SUBCOMMAND["key"] =
|
76
|
-
|
77
|
-
|
101
|
+
DOC_SUBCOMMAND["key"] =
|
102
|
+
%Q(usage: dawn key
|
103
|
+
dawn key add
|
104
|
+
dawn key delete <id>
|
105
|
+
dawn key get <id>
|
106
|
+
|
107
|
+
Options:
|
108
|
+
-h, --help display help.
|
78
109
|
|
79
110
|
Commands:
|
80
|
-
add
|
81
|
-
delete
|
82
|
-
get
|
111
|
+
add add your current public key to dawn.
|
112
|
+
delete remove a key.
|
113
|
+
get retrieve a key.
|
114
|
+
|
115
|
+
if no command is given, prints all keys deployed to dawn.
|
83
116
|
)
|
84
117
|
|
85
|
-
DOC_SUBCOMMAND["release"] =
|
86
|
-
|
87
|
-
|
118
|
+
DOC_SUBCOMMAND["release"] =
|
119
|
+
%Q(usage: dawn release
|
120
|
+
dawn release add
|
121
|
+
|
122
|
+
Options:
|
123
|
+
-h, --help display help.
|
88
124
|
|
89
125
|
Commands:
|
90
|
-
add
|
126
|
+
add create a new release for the current app.
|
127
|
+
|
128
|
+
if no command is given, list all releases for the current app.
|
91
129
|
)
|
92
130
|
|
93
131
|
@@selected_app = nil
|
@@ -118,64 +156,52 @@ Commands:
|
|
118
156
|
# @param [String] command
|
119
157
|
# @param [Hash] options
|
120
158
|
###
|
121
|
-
def self.run_app_command(
|
122
|
-
|
123
|
-
when ""
|
124
|
-
Dawn::CLI::App.list
|
125
|
-
when "delete"
|
159
|
+
def self.run_app_command(options)
|
160
|
+
if options["delete"]
|
126
161
|
Dawn::CLI::App.delete
|
127
|
-
|
162
|
+
elsif options["restart"]
|
128
163
|
Dawn::CLI::App.restart
|
129
|
-
|
130
|
-
data = options["<
|
164
|
+
elsif options["scale"]
|
165
|
+
data = options["<gear_modifier>"].inject({}) do |str, hash|
|
131
166
|
if str =~ /(\S+)([+-=])(\d+)/
|
132
167
|
hash[$1] = [$2, $3.to_i]
|
133
168
|
end
|
134
169
|
end
|
135
170
|
Dawn::CLI::App.scale(data)
|
136
171
|
else
|
137
|
-
|
172
|
+
Dawn::CLI::App.list
|
138
173
|
end
|
139
174
|
end
|
140
175
|
|
141
|
-
def self.run_domain_command(
|
142
|
-
|
143
|
-
|
144
|
-
Dawn::CLI::Domain.list
|
145
|
-
when "add"
|
146
|
-
url = options["<argv>"].first
|
176
|
+
def self.run_domain_command(options)
|
177
|
+
if options["add"]
|
178
|
+
url = options["<url>"]
|
147
179
|
Dawn::CLI::Domain.add(url)
|
148
|
-
|
149
|
-
url = options["<
|
180
|
+
elsif options["delete"]
|
181
|
+
url = options["<url>"]
|
150
182
|
Dawn::CLI::Domain.delete(url)
|
151
183
|
else
|
152
|
-
|
184
|
+
Dawn::CLI::Domain.list
|
153
185
|
end
|
154
186
|
end
|
155
187
|
|
156
|
-
def self.run_drain_command(
|
157
|
-
|
158
|
-
|
159
|
-
Dawn::CLI::Drain.list
|
160
|
-
when "add"
|
161
|
-
url = options["<argv>"].first
|
188
|
+
def self.run_drain_command(options)
|
189
|
+
if options["add"]
|
190
|
+
url = options["<url>"]
|
162
191
|
Dawn::CLI::Drain.add(url)
|
163
|
-
|
164
|
-
url = options["<
|
192
|
+
elsif options["delete"]
|
193
|
+
url = options["<url>"]
|
165
194
|
Dawn::CLI::Drain.delete(url)
|
166
195
|
else
|
167
|
-
|
196
|
+
Dawn::CLI::Drain.list
|
168
197
|
end
|
169
198
|
end
|
170
199
|
|
171
|
-
def self.run_env_command(
|
172
|
-
|
173
|
-
|
174
|
-
Dawn::CLI::Env.list
|
175
|
-
when "get"
|
176
|
-
keys = options["<argv>"]
|
200
|
+
def self.run_env_command(options)
|
201
|
+
if options["get"]
|
202
|
+
keys = options["<key_name>"]
|
177
203
|
Dawn::CLI::Env.get(*keys)
|
178
|
-
|
204
|
+
elsif options["set"]
|
179
205
|
data = options["<argv>"].each_with_object({}) do |str, hash|
|
180
206
|
if str =~ /(\S+)=(.*)/
|
181
207
|
key, value = $1, $2
|
@@ -183,80 +209,84 @@ Commands:
|
|
183
209
|
end
|
184
210
|
end
|
185
211
|
Dawn::CLI::Env.set(data)
|
186
|
-
|
187
|
-
keys = options["<
|
212
|
+
elsif options["unset"]
|
213
|
+
keys = options["<key_name>"]
|
188
214
|
Dawn::CLI::Env.unset(*keys)
|
189
215
|
else
|
190
|
-
|
216
|
+
Dawn::CLI::Env.list
|
191
217
|
end
|
192
218
|
end
|
193
219
|
|
194
|
-
def self.run_key_command(
|
195
|
-
|
196
|
-
when ""
|
197
|
-
Dawn::CLI::Key.list
|
198
|
-
when "add"
|
220
|
+
def self.run_key_command(options)
|
221
|
+
if options["add"]
|
199
222
|
Dawn::CLI::Key.add
|
200
|
-
|
201
|
-
id = options["<
|
223
|
+
elsif options["get"]
|
224
|
+
id = options["<id>"].first
|
202
225
|
Dawn::CLI::Key.get(id)
|
203
|
-
|
204
|
-
id = options["<
|
226
|
+
elsif options["delete"]
|
227
|
+
id = options["<id>"].first
|
205
228
|
Dawn::CLI::Key.delete(id)
|
206
229
|
else
|
207
|
-
|
230
|
+
Dawn::CLI::Key.list
|
208
231
|
end
|
209
232
|
end
|
210
233
|
|
211
|
-
def self.run_release_command(
|
212
|
-
|
213
|
-
when ""
|
214
|
-
Dawn::CLI::Release.list
|
215
|
-
when "add"
|
234
|
+
def self.run_release_command(options)
|
235
|
+
if options["add"]
|
216
236
|
Dawn::CLI::Release.add
|
217
237
|
else
|
238
|
+
Dawn::CLI::Release.list
|
218
239
|
not_a_command("dawn release", command)
|
219
240
|
end
|
220
241
|
end
|
221
242
|
|
243
|
+
###
|
244
|
+
# @param [String] command
|
245
|
+
# @param [Array<String>] argv
|
246
|
+
###
|
222
247
|
def self.run_subcommand(command, argv)
|
223
248
|
if argv.empty?
|
224
249
|
subcommand = ""
|
225
250
|
else
|
226
251
|
result = Docopt.docopt(DOC_SUBCOMMAND[command], argv: argv,
|
227
|
-
version: Dawn::CLI::VERSION, help:
|
228
|
-
subcommand = result["<command>"]
|
252
|
+
version: Dawn::CLI::VERSION, help: true)
|
229
253
|
end
|
230
|
-
send("run_#{command}_command",
|
254
|
+
send("run_#{command}_command", result)
|
231
255
|
end
|
232
256
|
|
257
|
+
###
|
258
|
+
# @param [Array<String>] argv
|
259
|
+
###
|
233
260
|
def self.run(argv)
|
234
|
-
|
235
|
-
|
236
|
-
|
261
|
+
# initial run to retrieve command
|
262
|
+
result = Docopt.docopt(DOC_TOP, argv: argv,
|
263
|
+
version: Dawn::CLI::VERSION, help: false)
|
264
|
+
command = result["<command>"]
|
265
|
+
# run the docopt again this time with help enabled if there was no command
|
266
|
+
unless command
|
267
|
+
result = Docopt.docopt(DOC_TOP, argv: argv,
|
268
|
+
version: Dawn::CLI::VERSION, help: true)
|
269
|
+
end
|
270
|
+
|
271
|
+
# set the selected_app
|
272
|
+
self.selected_app = result["--app"]
|
273
|
+
case command
|
274
|
+
when "create"
|
275
|
+
Dawn::CLI::App.create command_argv.first
|
276
|
+
when "ls"
|
277
|
+
Dawn::CLI::App.list
|
278
|
+
when "ps"
|
279
|
+
Dawn::CLI::App.list_gears
|
280
|
+
when "login"
|
281
|
+
username = ask("Username: ")
|
282
|
+
password = ask("Password: ") { |q| q.echo = false }
|
283
|
+
Dawn::CLI::Auth.login username, password
|
284
|
+
when "logs"
|
285
|
+
Dawn::CLI::App.logs
|
286
|
+
when *DOC_SUBCOMMAND.keys
|
287
|
+
run_subcommand(command, argv)
|
237
288
|
else
|
238
|
-
|
239
|
-
|
240
|
-
command = result["<command>"]
|
241
|
-
command_argv = result["<argv>"]
|
242
|
-
case command
|
243
|
-
when "create"
|
244
|
-
Dawn::CLI::App.create command_argv.first
|
245
|
-
when "ls"
|
246
|
-
Dawn::CLI::App.list
|
247
|
-
when "ps"
|
248
|
-
Dawn::CLI::App.list_gears
|
249
|
-
when "login"
|
250
|
-
username = ask("Username: ")
|
251
|
-
password = ask("Password: ") { |q| q.echo = false }
|
252
|
-
Dawn::CLI::Auth.login username, password
|
253
|
-
when "logs"
|
254
|
-
Dawn::CLI::App.logs
|
255
|
-
when *DOC_SUBCOMMAND.keys
|
256
|
-
run_subcommand(command, command_argv)
|
257
|
-
else
|
258
|
-
not_a_command("dawn", command)
|
259
|
-
end
|
289
|
+
not_a_command("dawn", command)
|
260
290
|
end
|
261
291
|
rescue Docopt::Exit => ex
|
262
292
|
abort ex.message
|
data/lib/dawn/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dawn-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blaž Hrastnik
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
12
|
+
date: 2014-06-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: docopt
|