dawn-cli 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|