zillabyte-cli 0.0.20 → 0.0.21
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 +8 -8
- data/lib/zillabyte/api/apps.rb +5 -2
- data/lib/zillabyte/api.rb +3 -0
- data/lib/zillabyte/cli/apps.rb +277 -45
- data/lib/zillabyte/cli/apps.rb.orig +1158 -0
- data/lib/zillabyte/cli/auth.rb +2 -2
- data/lib/zillabyte/cli/config.rb +2 -1
- data/lib/zillabyte/cli/help.rb +3 -2
- data/lib/zillabyte/cli/nuke.rb +42 -0
- data/lib/zillabyte/cli/relations.rb +8 -8
- data/lib/zillabyte/cli/repl.rb +32 -11
- data/lib/zillabyte/cli/templates/ruby/Gemfile.lock +81 -0
- data/lib/zillabyte/cli/templates/ruby/app.rb +2 -2
- data/lib/zillabyte/cli/version.rb +8 -1
- data/lib/zillabyte/command.rb +7 -1
- data/lib/zillabyte/helpers.rb +3 -2
- data/lib/zillabyte-cli/version.rb +1 -1
- metadata +5 -2
data/lib/zillabyte/cli/auth.rb
CHANGED
@@ -10,7 +10,7 @@ class Zillabyte::Command::Auth < Zillabyte::Command::Base
|
|
10
10
|
|
11
11
|
# auth:login
|
12
12
|
#
|
13
|
-
#
|
13
|
+
# sets the Zillabyte auth token
|
14
14
|
#
|
15
15
|
# --auth_token TOKEN # provide the token
|
16
16
|
def login
|
@@ -25,7 +25,7 @@ class Zillabyte::Command::Auth < Zillabyte::Command::Base
|
|
25
25
|
|
26
26
|
# auth:logout
|
27
27
|
#
|
28
|
-
#
|
28
|
+
# sets the Zillabyte auth token
|
29
29
|
#
|
30
30
|
def logout
|
31
31
|
Zillabyte::Auth.logout
|
data/lib/zillabyte/cli/config.rb
CHANGED
@@ -19,7 +19,7 @@ module Zillabyte
|
|
19
19
|
conf_file = File.join(dir, options[:config_file] || DEFAULT_CONFIG_FILE)
|
20
20
|
end
|
21
21
|
type = options[:type]
|
22
|
-
|
22
|
+
|
23
23
|
return nil unless File.exists?(conf_file)
|
24
24
|
hash = YAML.load_file(conf_file)
|
25
25
|
|
@@ -31,6 +31,7 @@ module Zillabyte
|
|
31
31
|
top_dir = File.expand_path(hash['top_dir'] || ".", dir)
|
32
32
|
top_path = Pathname.new(top_dir)
|
33
33
|
rel_dir = Pathname.new(dir).relative_path_from(top_path).to_s
|
34
|
+
|
34
35
|
ignore_files = if hash.has_key?("ignore_files")
|
35
36
|
ignore_files = hash["ignore_files"]
|
36
37
|
ignore_files_array = ignore_files.respond_to?(:to_a) ? ignore_files.to_a() : [ignore_files]
|
data/lib/zillabyte/cli/help.rb
CHANGED
@@ -6,7 +6,7 @@ class Zillabyte::Command::Help < Zillabyte::Command::Base
|
|
6
6
|
|
7
7
|
PRIMARY_NAMESPACES = %w( relations query apps logs )
|
8
8
|
|
9
|
-
|
9
|
+
# help
|
10
10
|
def index(*direct_args)
|
11
11
|
|
12
12
|
if command = args.shift || direct_args.shift
|
@@ -45,6 +45,7 @@ private
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def legacy_help_for_command(command)
|
48
|
+
|
48
49
|
Zillabyte::Command::Help.groups.each do |group|
|
49
50
|
group.each do |cmd, description|
|
50
51
|
return description if cmd.split(" ").first == command
|
@@ -90,7 +91,7 @@ private
|
|
90
91
|
if command_alias.include?("-") or command_alias.include?(":")
|
91
92
|
next #skip -h, -help and live-run etc.
|
92
93
|
end
|
93
|
-
puts command_alias.ljust(a_size)
|
94
|
+
puts "#{command_alias.ljust(a_size)} --> #{alias_to.ljust(a_to_size)} # #{commands[alias_to][:summary]}"
|
94
95
|
end
|
95
96
|
end
|
96
97
|
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "zillabyte/cli/base"
|
2
|
+
require "zillabyte/cli/config"
|
3
|
+
require "zillabyte/common"
|
4
|
+
|
5
|
+
|
6
|
+
# HIDDEN: resets all user state
|
7
|
+
#
|
8
|
+
class Zillabyte::Command::Nuke < Zillabyte::Command::Base
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
# apps:nuke
|
14
|
+
#
|
15
|
+
# destroys all state associated with the current user
|
16
|
+
#
|
17
|
+
# --force # this option must always be given
|
18
|
+
#
|
19
|
+
def index
|
20
|
+
|
21
|
+
unless options[:force]
|
22
|
+
fail("--force must be given")
|
23
|
+
raise
|
24
|
+
end
|
25
|
+
|
26
|
+
res = api.request(
|
27
|
+
:expects => 200,
|
28
|
+
:method => :post,
|
29
|
+
:path => "/nukes",
|
30
|
+
:body => options.to_json
|
31
|
+
)
|
32
|
+
res.body
|
33
|
+
|
34
|
+
if options[:type] == "json"
|
35
|
+
display res.body.to_json
|
36
|
+
else
|
37
|
+
display "Nuked #{res.body['deleted_apps']} app(s) and #{res.body['deleted_apps']} relations(s)"
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -11,7 +11,7 @@ require "json"
|
|
11
11
|
class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
12
12
|
|
13
13
|
MAX_POLL_SECONDS = 60 * 5
|
14
|
-
POLL_SLEEP =
|
14
|
+
POLL_SLEEP = 1
|
15
15
|
|
16
16
|
# relations
|
17
17
|
#
|
@@ -87,7 +87,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
87
87
|
error(res['error'], type)
|
88
88
|
else
|
89
89
|
if type == "json"
|
90
|
-
display {}
|
90
|
+
display "{}"
|
91
91
|
else
|
92
92
|
display res["body"]
|
93
93
|
end
|
@@ -119,7 +119,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
119
119
|
error("no name given", type) if name.nil?
|
120
120
|
|
121
121
|
schema = options[:schema] if options[:schema]
|
122
|
-
is_public = options[:public] ||
|
122
|
+
is_public = options[:public] || false
|
123
123
|
description = options[:description] || nil
|
124
124
|
aliases = options[:aliases] || nil
|
125
125
|
|
@@ -140,7 +140,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
140
140
|
error("#{res['error_message']}", type)
|
141
141
|
else
|
142
142
|
if type == "json"
|
143
|
-
display {}
|
143
|
+
display "{}"
|
144
144
|
else
|
145
145
|
display "relation ##{res['id']} #{res['action']}. size: #{res['size'] || 0} rows."
|
146
146
|
end
|
@@ -174,7 +174,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
174
174
|
|
175
175
|
res = self.api.data.append(id, options.merge({:rows => rows}))
|
176
176
|
if type == "json"
|
177
|
-
display {}
|
177
|
+
display "{}"
|
178
178
|
else
|
179
179
|
display "relation ##{id} appended #{res["size"]} rows"
|
180
180
|
end
|
@@ -234,7 +234,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
234
234
|
end
|
235
235
|
|
236
236
|
if type == "json"
|
237
|
-
display {}
|
237
|
+
display "{}"
|
238
238
|
else
|
239
239
|
display "pulled data from relation ##{id} to file #{file}"
|
240
240
|
end
|
@@ -272,7 +272,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
272
272
|
res = self.api.data.pull_to_s3(id, s3_params)
|
273
273
|
|
274
274
|
if type == "json"
|
275
|
-
display {}
|
275
|
+
display "{}"
|
276
276
|
else
|
277
277
|
display "downloading relation data to s3://#{res["s3_bucket"]}/#{res["s3_file_key"]}/"
|
278
278
|
display "if the relation is large, this may take a while, please check your s3 account after a few minutes"
|
@@ -372,7 +372,7 @@ class Zillabyte::Command::Relations < Zillabyte::Command::Base
|
|
372
372
|
display TableOutputBuilder.build_table(headings, rows, type)
|
373
373
|
else
|
374
374
|
if type == "json"
|
375
|
-
display {}
|
375
|
+
display "{}"
|
376
376
|
else
|
377
377
|
display "empty relation"
|
378
378
|
end
|
data/lib/zillabyte/cli/repl.rb
CHANGED
@@ -1,22 +1,43 @@
|
|
1
1
|
require "zillabyte/cli/base"
|
2
|
-
|
2
|
+
require 'readline'
|
3
3
|
# REPL console for zillabyte commands
|
4
4
|
#
|
5
5
|
class Zillabyte::Command::Repl < Zillabyte::Command::Base
|
6
6
|
|
7
7
|
# repl
|
8
8
|
#
|
9
|
-
#
|
10
|
-
#
|
9
|
+
# start a console session for zillabyte
|
10
|
+
# --quiet # HIDDEN
|
11
|
+
# --history HISTORY# HIDDEN hack to allow history for readline
|
11
12
|
def index
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
if !options[:quiet]
|
14
|
+
v = `zillabyte version`
|
15
|
+
display "\n#{v}Type q,exit or Ctrl+D to quit\n\n"
|
16
|
+
end
|
17
|
+
server = `echo $ZILLABYTE_API_HOST` || ""
|
18
|
+
prompt = ""
|
19
|
+
if server && server.chomp.length > 0
|
20
|
+
prompt = "#{server.chomp} "
|
21
|
+
end
|
22
|
+
prompt += "zillabyte $ "
|
23
|
+
if options[:history]
|
24
|
+
#p options[:history]
|
25
|
+
history = JSON.parse(options[:history])
|
26
|
+
history.last(50).each do |his|
|
27
|
+
# TODO: Handle single quotes ??
|
28
|
+
Readline::HISTORY << his
|
19
29
|
end
|
20
|
-
|
30
|
+
end
|
31
|
+
# TODO: Add tab completion for basic commands, app/relation names etc.
|
32
|
+
while cmd = Readline.readline(prompt, true)
|
33
|
+
if cmd && cmd.length > 0
|
34
|
+
if cmd.downcase == "exit" || cmd.downcase == "q"
|
35
|
+
display "" # TODO Make Ctrl+D print a newline too
|
36
|
+
return
|
37
|
+
else
|
38
|
+
exec "zillabyte #{cmd}; zillabyte repl --quiet --history '#{Readline::HISTORY.to_a.to_json}'"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
21
42
|
end
|
22
43
|
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
GEM
|
2
|
+
remote: https://rubygems.org/
|
3
|
+
specs:
|
4
|
+
actionpack (3.2.17)
|
5
|
+
activemodel (= 3.2.17)
|
6
|
+
activesupport (= 3.2.17)
|
7
|
+
builder (~> 3.0.0)
|
8
|
+
erubis (~> 2.7.0)
|
9
|
+
journey (~> 1.0.4)
|
10
|
+
rack (~> 1.4.5)
|
11
|
+
rack-cache (~> 1.2)
|
12
|
+
rack-test (~> 0.6.1)
|
13
|
+
sprockets (~> 2.2.1)
|
14
|
+
activemodel (3.2.17)
|
15
|
+
activesupport (= 3.2.17)
|
16
|
+
builder (~> 3.0.0)
|
17
|
+
activesupport (3.2.17)
|
18
|
+
i18n (~> 0.6, >= 0.6.4)
|
19
|
+
multi_json (~> 1.0)
|
20
|
+
ascii_charts (0.9.1)
|
21
|
+
aws-sdk (1.33.0)
|
22
|
+
json (~> 1.4)
|
23
|
+
nokogiri (>= 1.4.4)
|
24
|
+
uuidtools (~> 2.1)
|
25
|
+
builder (3.0.4)
|
26
|
+
chronic (0.10.2)
|
27
|
+
colorize (0.7.2)
|
28
|
+
erubis (2.7.0)
|
29
|
+
excon (0.33.0)
|
30
|
+
hike (1.2.3)
|
31
|
+
i18n (0.6.9)
|
32
|
+
indentation (0.1.1)
|
33
|
+
journey (1.0.4)
|
34
|
+
json (1.8.1)
|
35
|
+
mime-types (2.2)
|
36
|
+
mini_portile (0.5.3)
|
37
|
+
multi_json (1.9.2)
|
38
|
+
netrc (0.7.7)
|
39
|
+
nokogiri (1.6.1)
|
40
|
+
mini_portile (~> 0.5.0)
|
41
|
+
rack (1.4.5)
|
42
|
+
rack-cache (1.2)
|
43
|
+
rack (>= 0.4)
|
44
|
+
rack-test (0.6.2)
|
45
|
+
rack (>= 1.0)
|
46
|
+
rest-client (1.6.7)
|
47
|
+
mime-types (>= 1.16)
|
48
|
+
sprockets (2.2.2)
|
49
|
+
hike (~> 1.2)
|
50
|
+
multi_json (~> 1.0)
|
51
|
+
rack (~> 1.0)
|
52
|
+
tilt (~> 1.1, != 1.3.0)
|
53
|
+
terminal-table (1.4.5)
|
54
|
+
tilt (1.4.1)
|
55
|
+
time_difference (0.3.2)
|
56
|
+
activesupport
|
57
|
+
uuidtools (2.1.4)
|
58
|
+
zillabyte (0.0.20)
|
59
|
+
zillabyte-cli (~> 0.0.20)
|
60
|
+
zillabyte-cli (0.0.20)
|
61
|
+
actionpack (~> 3.2.13)
|
62
|
+
activesupport (~> 3.2.11)
|
63
|
+
ascii_charts (~> 0.9.1)
|
64
|
+
aws-sdk (~> 1.33.0)
|
65
|
+
bundler (~> 1.3)
|
66
|
+
chronic (~> 0.10)
|
67
|
+
colorize (~> 0.6)
|
68
|
+
excon (~> 0.31)
|
69
|
+
indentation (~> 0.1)
|
70
|
+
mini_portile (~> 0.5.0)
|
71
|
+
multi_json (~> 1.0)
|
72
|
+
netrc (~> 0.7.7)
|
73
|
+
rest-client (~> 1.6.1)
|
74
|
+
terminal-table (~> 1.4)
|
75
|
+
time_difference
|
76
|
+
|
77
|
+
PLATFORMS
|
78
|
+
ruby
|
79
|
+
|
80
|
+
DEPENDENCIES
|
81
|
+
zillabyte
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'zillabyte'
|
5
5
|
|
6
|
-
|
6
|
+
Zillabyte.app("hello_world_app")
|
7
7
|
.source("select * from web_pages")
|
8
8
|
.each{ |page|
|
9
9
|
if page['html'].include? "hello world"
|
@@ -13,4 +13,4 @@ app = Zillabyte.app("hello_world_app")
|
|
13
13
|
.sink{
|
14
14
|
name "has_hello_world"
|
15
15
|
column "url", :string
|
16
|
-
}
|
16
|
+
}
|
@@ -4,8 +4,15 @@ require "zillabyte/cli/base"
|
|
4
4
|
#
|
5
5
|
class Zillabyte::Command::Version < Zillabyte::Command::Base
|
6
6
|
|
7
|
+
# version
|
8
|
+
#
|
9
|
+
# display version number of the CLI
|
7
10
|
def index(*direct_args)
|
8
|
-
|
11
|
+
if options[:type] == "json"
|
12
|
+
display( {:version => Zillabyte::CLI::VERSION}.to_json )
|
13
|
+
else
|
14
|
+
display "Zillabyte CLI Version #{Zillabyte::CLI::VERSION}"
|
15
|
+
end
|
9
16
|
end
|
10
17
|
|
11
18
|
end
|
data/lib/zillabyte/command.rb
CHANGED
@@ -165,10 +165,16 @@ module Zillabyte
|
|
165
165
|
|
166
166
|
args.concat(invalid_options)
|
167
167
|
|
168
|
+
# Make the --json command universal..
|
169
|
+
if invalid_options.include?("--json")
|
170
|
+
invalid_options.delete("--json")
|
171
|
+
opts[:type] = "json"
|
172
|
+
end
|
173
|
+
|
168
174
|
@current_args = args
|
169
175
|
@current_options = opts
|
170
176
|
@invalid_arguments = invalid_options
|
171
|
-
|
177
|
+
|
172
178
|
@anonymous_command = [ARGV.first, *@anonymized_args].join(' ')
|
173
179
|
begin
|
174
180
|
usage_directory = "#{home_directory}/.zillabyte/usage"
|
data/lib/zillabyte/helpers.rb
CHANGED
@@ -17,11 +17,12 @@ module Zillabyte
|
|
17
17
|
|
18
18
|
def error(message, format=nil)
|
19
19
|
if format == "json"
|
20
|
-
$
|
20
|
+
$stdout.puts(({"error"=>message}).to_json)
|
21
|
+
exit
|
21
22
|
else
|
22
23
|
$stderr.puts(format_with_bang(message))
|
24
|
+
exit(1)
|
23
25
|
end
|
24
|
-
exit(1)
|
25
26
|
end
|
26
27
|
|
27
28
|
def format_with_bang(message)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zillabyte-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zillabyte
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -257,6 +257,7 @@ files:
|
|
257
257
|
- lib/zillabyte/api.rb
|
258
258
|
- lib/zillabyte/auth.rb
|
259
259
|
- lib/zillabyte/cli/apps.rb
|
260
|
+
- lib/zillabyte/cli/apps.rb.orig
|
260
261
|
- lib/zillabyte/cli/auth.rb
|
261
262
|
- lib/zillabyte/cli/base.rb
|
262
263
|
- lib/zillabyte/cli/config.rb
|
@@ -266,6 +267,7 @@ files:
|
|
266
267
|
- lib/zillabyte/cli/helpers/table_output_builder.rb
|
267
268
|
- lib/zillabyte/cli/host.rb
|
268
269
|
- lib/zillabyte/cli/log_formatter.rb
|
270
|
+
- lib/zillabyte/cli/nuke.rb
|
269
271
|
- lib/zillabyte/cli/query.rb
|
270
272
|
- lib/zillabyte/cli/relations.rb
|
271
273
|
- lib/zillabyte/cli/repl.rb
|
@@ -277,6 +279,7 @@ files:
|
|
277
279
|
- lib/zillabyte/cli/templates/python/zillabyte.conf.yaml
|
278
280
|
- lib/zillabyte/cli/templates/ruby/app.rb
|
279
281
|
- lib/zillabyte/cli/templates/ruby/Gemfile
|
282
|
+
- lib/zillabyte/cli/templates/ruby/Gemfile.lock
|
280
283
|
- lib/zillabyte/cli/templates/ruby/zillabyte.conf.yaml
|
281
284
|
- lib/zillabyte/cli/version.rb
|
282
285
|
- lib/zillabyte/cli/zillalogs.rb
|