blockspring-cli 0.0.7 → 0.0.8
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/.editorconfig +12 -0
- data/README.md +4 -4
- data/blockspring-cli.gemspec +4 -2
- data/lib/blockspring/cli/auth.rb +3 -3
- data/lib/blockspring/cli/command/block.rb +73 -23
- data/lib/blockspring/cli/command/run.rb +14 -1
- data/lib/blockspring/cli/version.rb +1 -1
- metadata +35 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2199ec07ab37e2240a7a71926da6987f3c79d919
|
4
|
+
data.tar.gz: 3995e24e9d19f65b51a496256bb822e825ff6201
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1a4f5467e6967052800e08ea77bdc7ccfdf992efdd185cfa42989b16ff26da4374efdbfca22d86119c3fd79f98b09f4d97ca947dca165549ff109130e998351
|
7
|
+
data.tar.gz: 803d0d6c3086a62248dafa2168294d8e03ef1e8d53b135588394f7c605a38373f40b90fdf4a00351efcb933cb40e9a608f72b05a62c9b23ce4e3397655cfda92
|
data/.editorconfig
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
# EditorConfig is awesome: http://EditorConfig.org
|
2
|
+
|
3
|
+
# top-most EditorConfig file
|
4
|
+
root = true
|
5
|
+
|
6
|
+
# Unix-style newlines with a newline ending every file
|
7
|
+
[*]
|
8
|
+
end_of_line = lf
|
9
|
+
insert_final_newline = true
|
10
|
+
indent_style = space
|
11
|
+
indent_size = 2
|
12
|
+
trim_trailing_whitespace = true
|
data/README.md
CHANGED
@@ -10,23 +10,23 @@ Install via command line:
|
|
10
10
|
|
11
11
|
## Usage
|
12
12
|
|
13
|
-
|
13
|
+
#### Login with your api.blockspring.com account.
|
14
14
|
```bash
|
15
15
|
blockspring login
|
16
16
|
```
|
17
17
|
|
18
|
-
|
18
|
+
#### Create a new block
|
19
19
|
```bash
|
20
20
|
blockspring new js "My new JS block"
|
21
21
|
cd my-new-js-block
|
22
22
|
```
|
23
23
|
|
24
|
-
|
24
|
+
#### Edit your function
|
25
25
|
```bash
|
26
26
|
echo "console.log('hi');" > block.js
|
27
27
|
```
|
28
28
|
|
29
|
-
|
29
|
+
#### Push
|
30
30
|
```bash
|
31
31
|
blockspring push
|
32
32
|
```
|
data/blockspring-cli.gemspec
CHANGED
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
|
24
24
|
spec.add_dependency "netrc", "~> 0.8.0"
|
25
|
-
spec.add_dependency "rest-client", "
|
26
|
-
spec.add_dependency "json",
|
25
|
+
spec.add_dependency "rest-client", "> 1.6.0"
|
26
|
+
spec.add_dependency "json", "~> 1.8.1"
|
27
|
+
spec.add_dependency "launchy", "~> 2.4.2"
|
28
|
+
spec.add_dependency "blockspring", "> 0.0.0"
|
27
29
|
end
|
data/lib/blockspring/cli/auth.rb
CHANGED
@@ -5,12 +5,12 @@ class Blockspring::CLI::Auth
|
|
5
5
|
include Blockspring::CLI::Helpers
|
6
6
|
|
7
7
|
def host
|
8
|
-
ENV['BLOCKSPRING_API_HOST'] || '
|
8
|
+
ENV['BLOCKSPRING_API_HOST'] || 'api.blockspring.com'
|
9
9
|
end
|
10
10
|
|
11
11
|
# TODO: change to https
|
12
12
|
def base_url
|
13
|
-
protocol = ENV['BLOCKSPRING_API_PROTOCOL'] || '
|
13
|
+
protocol = ENV['BLOCKSPRING_API_PROTOCOL'] || 'https'
|
14
14
|
"#{protocol}://#{host}"
|
15
15
|
end
|
16
16
|
|
@@ -131,7 +131,7 @@ class Blockspring::CLI::Auth
|
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
134
|
-
def netrc
|
134
|
+
def netrc
|
135
135
|
@netrc ||= begin
|
136
136
|
File.exists?(netrc_path) && Netrc.read(netrc_path)
|
137
137
|
rescue => error
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "blockspring/cli/command/base"
|
2
|
+
require "launchy"
|
2
3
|
|
3
4
|
# manipulate blocks (get, push, pull, new)
|
4
5
|
#
|
@@ -46,7 +47,7 @@ class Blockspring::CLI::Command::Block < Blockspring::CLI::Command::Base
|
|
46
47
|
# TODO: ensure valid config
|
47
48
|
puts "Pulling #{config_json['user']}/#{config_json['id']}"
|
48
49
|
block = get_block(config_json['id'])
|
49
|
-
save_block_files(block, '.')
|
50
|
+
save_block_files(block, '.', 'Pulling')
|
50
51
|
puts "Done."
|
51
52
|
end
|
52
53
|
|
@@ -63,11 +64,25 @@ class Blockspring::CLI::Command::Block < Blockspring::CLI::Command::Base
|
|
63
64
|
#
|
64
65
|
def push
|
65
66
|
_user, key = Blockspring::CLI::Auth.get_credentials
|
67
|
+
|
68
|
+
unless File.exists?('blockspring.json')
|
69
|
+
return error('blockspring.json file not found')
|
70
|
+
end
|
71
|
+
|
66
72
|
config_text = File.read('blockspring.json')
|
67
73
|
config_json = JSON.parse(config_text)
|
68
|
-
|
74
|
+
|
75
|
+
if config_json['language'].nil?
|
76
|
+
return error('You must declare a language in your blockspring.json file.')
|
77
|
+
end
|
78
|
+
|
69
79
|
# language could eventually be js:0.10.x or py:3 or ruby:MRI-2.0
|
70
80
|
script_file = "block.#{config_json['language'].split(':')[0]}"
|
81
|
+
|
82
|
+
unless File.exists?(script_file)
|
83
|
+
return error("#{script_file} file not found")
|
84
|
+
end
|
85
|
+
|
71
86
|
script = File.read(script_file)
|
72
87
|
|
73
88
|
payload = {
|
@@ -75,14 +90,23 @@ class Blockspring::CLI::Command::Block < Blockspring::CLI::Command::Base
|
|
75
90
|
config: config_json
|
76
91
|
}
|
77
92
|
|
93
|
+
if @args.include? '--force'
|
94
|
+
payload['force'] = true
|
95
|
+
end
|
96
|
+
|
78
97
|
if config_json['id']
|
79
98
|
uri = "#{Blockspring::CLI::Auth.base_url}/cli/blocks/#{config_json['id']}"
|
80
99
|
else
|
81
100
|
uri = "#{Blockspring::CLI::Auth.base_url}/cli/blocks"
|
82
101
|
end
|
83
|
-
|
84
|
-
|
85
|
-
|
102
|
+
|
103
|
+
begin
|
104
|
+
response = RestClient.post uri, payload.to_json, :content_type => :json, :accept => :json, params: { api_key: key }, user_agent: Blockspring::CLI.user_agent
|
105
|
+
json_response = JSON.parse(response.body)
|
106
|
+
save_block_files(json_response, '.', 'Syncronizing')
|
107
|
+
rescue RestClient::Exception => msg
|
108
|
+
error(msg.inspect)
|
109
|
+
end
|
86
110
|
end
|
87
111
|
|
88
112
|
# block:new LANGUAGE "Block Name"
|
@@ -103,25 +127,38 @@ class Blockspring::CLI::Command::Block < Blockspring::CLI::Command::Base
|
|
103
127
|
language = @args[0]
|
104
128
|
name = @args[1]
|
105
129
|
|
106
|
-
|
130
|
+
begin
|
107
131
|
|
108
|
-
|
132
|
+
block = get_template(language)
|
109
133
|
|
110
|
-
|
111
|
-
"user" => user,
|
112
|
-
"title" => name,
|
113
|
-
"description" => '',
|
114
|
-
"parameters" => {},
|
115
|
-
"is_public" => false,
|
116
|
-
"language" => language
|
117
|
-
}
|
134
|
+
block['config']['title'] = name
|
118
135
|
|
119
|
-
|
120
|
-
|
121
|
-
|
136
|
+
dir_name = create_block_directory(block)
|
137
|
+
if dir_name
|
138
|
+
save_block_files(block, dir_name, 'Creating')
|
139
|
+
end
|
140
|
+
rescue RestClient::ResourceNotFound => msg
|
141
|
+
error("The language '#{language}' is not supported by Blockspring.")
|
142
|
+
rescue RestClient::Exception => msg
|
143
|
+
error(msg.inspect)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def open
|
148
|
+
config_text = File.read('blockspring.json')
|
149
|
+
config_json = JSON.parse(config_text)
|
150
|
+
|
151
|
+
user = config_json['user']
|
152
|
+
block_id = config_json['id']
|
153
|
+
|
154
|
+
uri = "#{Blockspring::CLI::Auth.base_url}/#{user}/#{block_id}"
|
155
|
+
|
156
|
+
Launchy.open( uri ) do |exception|
|
157
|
+
puts "Attempted to open #{uri} and failed because #{exception}"
|
122
158
|
end
|
123
159
|
end
|
124
160
|
|
161
|
+
alias_command "open", "block:open"
|
125
162
|
alias_command "get", "block:get"
|
126
163
|
alias_command "pull", "block:pull"
|
127
164
|
alias_command "push", "block:push"
|
@@ -136,6 +173,12 @@ protected
|
|
136
173
|
JSON.parse(response.to_str)
|
137
174
|
end
|
138
175
|
|
176
|
+
def get_template(format)
|
177
|
+
_user, key = Blockspring::CLI::Auth.get_credentials
|
178
|
+
response = RestClient.get "#{Blockspring::CLI::Auth.base_url}/cli/templates/#{format}", params: { api_key: key }, user_agent: Blockspring::CLI.user_agent
|
179
|
+
JSON.parse(response.to_str)
|
180
|
+
end
|
181
|
+
|
139
182
|
def create_block_directory(block)
|
140
183
|
|
141
184
|
dir_name = get_block_directory(block)
|
@@ -160,15 +203,22 @@ protected
|
|
160
203
|
end
|
161
204
|
end
|
162
205
|
|
163
|
-
def
|
164
|
-
# create script file
|
206
|
+
def save_block_script(block, dir_name, action='Syncing')
|
165
207
|
script_file = File.join(dir_name, "block.#{block['config']['language'].split(':')[0]}")
|
166
|
-
puts "
|
208
|
+
puts "#{action} script file #{script_file}"
|
167
209
|
File.open(script_file, 'w') { |file| file.write(block['code']) }
|
210
|
+
end
|
168
211
|
|
169
|
-
|
212
|
+
def save_block_config(block, dir_name, action='Syncing')
|
170
213
|
config_file = File.join(dir_name, "blockspring.json")
|
171
|
-
puts "
|
214
|
+
puts "#{action} config file #{config_file}"
|
172
215
|
File.open(config_file, 'w') { |file| file.write(JSON.pretty_generate(block['config']) + "\n") }
|
173
216
|
end
|
217
|
+
|
218
|
+
def save_block_files(block, dir_name, action='Syncing')
|
219
|
+
# create script file
|
220
|
+
save_block_script(block, dir_name, action)
|
221
|
+
# create config file
|
222
|
+
save_block_config(block, dir_name, action)
|
223
|
+
end
|
174
224
|
end
|
@@ -54,6 +54,19 @@ class Blockspring::CLI::Command::Run < Blockspring::CLI::Command::Base
|
|
54
54
|
# $ blockspring run:remote jtokoph/aasdfj332flk3 --zip-code=94110
|
55
55
|
#
|
56
56
|
def remote
|
57
|
-
|
57
|
+
require 'blockspring'
|
58
|
+
|
59
|
+
_, key = Blockspring::CLI::Auth.get_credentials
|
60
|
+
|
61
|
+
block_id = @args[0]
|
62
|
+
|
63
|
+
myBlock = lambda do |request, response|
|
64
|
+
response = Blockspring.run(block_id, request.params, key)
|
65
|
+
|
66
|
+
# TODO: don't autoparse the json in the library, I want the raw json
|
67
|
+
puts response.to_json
|
68
|
+
end
|
69
|
+
|
70
|
+
Blockspring.define(myBlock)
|
58
71
|
end
|
59
72
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blockspring-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blockspring
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: rest-client
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.6.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.6.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: json
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.8.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: launchy
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.4.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.4.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: blockspring
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.0.0
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.0.0
|
83
111
|
description: This is the command line helper for blockspring
|
84
112
|
email:
|
85
113
|
- founders@blockspring.com
|
@@ -88,6 +116,7 @@ executables:
|
|
88
116
|
extensions: []
|
89
117
|
extra_rdoc_files: []
|
90
118
|
files:
|
119
|
+
- ".editorconfig"
|
91
120
|
- ".gitignore"
|
92
121
|
- Gemfile
|
93
122
|
- LICENSE.txt
|