slapshot 0.0.5 → 0.0.6
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.
- data/bin/slapshot +67 -19
- data/lib/slapshot/main.rb +44 -6
- data/lib/slapshot/version.rb +1 -1
- metadata +2 -2
data/bin/slapshot
CHANGED
@@ -8,18 +8,12 @@ program_desc 'A command line interface to the Appshot API'
|
|
8
8
|
|
9
9
|
#version Slapshot::VERSION
|
10
10
|
|
11
|
-
desc 'Your Appshot
|
11
|
+
desc 'Your Appshot url'
|
12
12
|
flag [:url]
|
13
13
|
|
14
14
|
desc 'Your Appshot instance'
|
15
15
|
flag [:i,:instance]
|
16
16
|
|
17
|
-
desc 'Your Appshot username'
|
18
|
-
flag [:u,:username]
|
19
|
-
|
20
|
-
desc 'Your Appshot password'
|
21
|
-
flag [:p,:password]
|
22
|
-
|
23
17
|
desc 'Search your instance of Appshot'
|
24
18
|
arg_name 'Pass in the query'
|
25
19
|
command :search do |c|
|
@@ -63,19 +57,70 @@ command :upload do |c|
|
|
63
57
|
end
|
64
58
|
end
|
65
59
|
|
60
|
+
desc 'Login to the API and generate a token'
|
61
|
+
arg_name 'Pass in the username and password to login and generate a token'
|
62
|
+
|
63
|
+
command :login do |c|
|
64
|
+
|
65
|
+
c.desc 'Username (required)'
|
66
|
+
c.flag :u
|
67
|
+
|
68
|
+
c.desc 'Password (required)'
|
69
|
+
c.flag :p
|
70
|
+
|
71
|
+
c.action do |global_options,options,args|
|
72
|
+
|
73
|
+
url = global_options[:url] || ENV['APPSHOT_URL'] || "https://api.appshot.com"
|
74
|
+
|
75
|
+
if !options[:u] or !options[:p]
|
76
|
+
raise "When logging in you need to pass in both a username and a password"
|
77
|
+
end
|
78
|
+
|
79
|
+
if !File.exists? get_token_file
|
80
|
+
|
81
|
+
token = create_token(url, options[:u], options [:p])
|
82
|
+
puts "Generated token: #{token} and stored it in #{get_token_file}"
|
83
|
+
|
84
|
+
else
|
85
|
+
puts "Found existing file at #{get_token_file}"
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
desc 'Logout to the API, disactivate and remove the token'
|
93
|
+
command :logout do |c|
|
94
|
+
|
95
|
+
c.action do |global_options,options,args|
|
96
|
+
|
97
|
+
url = global_options[:url] || ENV['APPSHOT_URL'] || "https://api.appshot.com"
|
98
|
+
|
99
|
+
if File.exists? get_token_file
|
100
|
+
|
101
|
+
token = remove_token(url)
|
102
|
+
puts "Disactivated token: #{token} and removed #{get_token_file}"
|
103
|
+
|
104
|
+
else
|
105
|
+
puts "You are not logged in."
|
106
|
+
end
|
107
|
+
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
111
|
+
|
112
|
+
|
66
113
|
pre do |global,command,options,args|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
@sc = SlapshotConnection.new url, instance, username, password
|
114
|
+
|
115
|
+
url = global[:url] || ENV['APPSHOT_URL'] || "https://api.appshot.com"
|
116
|
+
|
117
|
+
if command.names != 'login' and command.names != 'logout'
|
118
|
+
|
119
|
+
instance = global[:i] || ENV['APPSHOT_INSTANCE']
|
120
|
+
|
121
|
+
@sc = Appshot.new url, get_token, instance
|
122
|
+
|
123
|
+
end
|
79
124
|
|
80
125
|
true
|
81
126
|
end
|
@@ -89,6 +134,9 @@ end
|
|
89
134
|
on_error do |exception|
|
90
135
|
# Error logic here
|
91
136
|
# return false to skip default error handling
|
137
|
+
|
138
|
+
#puts "exception #{exception.http_body}"
|
139
|
+
|
92
140
|
true
|
93
141
|
end
|
94
142
|
|
data/lib/slapshot/main.rb
CHANGED
@@ -3,12 +3,50 @@ require 'json'
|
|
3
3
|
require 'formatador'
|
4
4
|
require 'spreadsheet'
|
5
5
|
|
6
|
-
|
6
|
+
def get_token_file
|
7
|
+
homes = ["HOME", "HOMEPATH"]
|
8
|
+
realHome = homes.detect {|h| ENV[h] != nil}
|
9
|
+
ENV[realHome] + '/.slapshot_token' unless !realHome
|
10
|
+
end
|
11
|
+
|
12
|
+
def create_token(url, username, password)
|
13
|
+
token = RestClient.get url + '/login', :params => { :u => username, :p => password }
|
14
|
+
|
15
|
+
File.open(get_token_file, 'w') {|f|
|
16
|
+
f.write(token)
|
17
|
+
}
|
7
18
|
|
8
|
-
|
19
|
+
token
|
20
|
+
end
|
21
|
+
|
22
|
+
def remove_token(url)
|
23
|
+
|
24
|
+
token = get_token
|
25
|
+
|
26
|
+
RestClient.get url + '/logout', :params => { :t => token }
|
27
|
+
|
28
|
+
File.delete(get_token_file)
|
29
|
+
|
30
|
+
token
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_token
|
35
|
+
|
36
|
+
if not File.exists? get_token_file
|
37
|
+
raise "Could not find a token file to read from"
|
38
|
+
end
|
39
|
+
|
40
|
+
File.open(get_token_file, 'r').read
|
41
|
+
end
|
42
|
+
|
43
|
+
class Appshot
|
44
|
+
|
45
|
+
def initialize(url, token, instance)
|
9
46
|
@app = "Portfolio"
|
10
47
|
@instance = instance
|
11
|
-
|
48
|
+
|
49
|
+
@api = RestClient::Resource.new url, :timeout => -1, :headers => {'Appshot-AuthToken' => token, 'Appshot-Instance' => instance}
|
12
50
|
end
|
13
51
|
|
14
52
|
def set_app(app)
|
@@ -17,9 +55,10 @@ class SlapshotConnection
|
|
17
55
|
|
18
56
|
def search(query, count)
|
19
57
|
|
20
|
-
response = @api["search"].get :params => { :i => @instance, :app => @app, :q => query, :c => count }, :content_type => :json, :accept => :json
|
58
|
+
response = @api["v1/search"].get :params => { :i => @instance, :app => @app, :q => query, :c => count }, :content_type => :json, :accept => :json
|
21
59
|
|
22
60
|
json_response = JSON.parse(response.body)
|
61
|
+
|
23
62
|
puts "Found #{json_response['count']} total results, retrieving #{count} results in #{json_response['search_time']} ms."
|
24
63
|
|
25
64
|
json_response['docs']
|
@@ -34,7 +73,7 @@ class SlapshotConnection
|
|
34
73
|
book = Spreadsheet::Workbook.new
|
35
74
|
sheet1 = book.create_worksheet :name => 'Search Results'
|
36
75
|
|
37
|
-
columns = ['name', 'entity_type'
|
76
|
+
columns = ['name', 'entity_type']
|
38
77
|
|
39
78
|
rownum = 0
|
40
79
|
for column in columns
|
@@ -47,7 +86,6 @@ class SlapshotConnection
|
|
47
86
|
end
|
48
87
|
end
|
49
88
|
book.write(out)
|
50
|
-
|
51
89
|
end
|
52
90
|
|
53
91
|
end
|
data/lib/slapshot/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slapshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|