bushido 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/bushido +13 -11
- data/bushido.gemspec +3 -1
- data/lib/bushido/app.rb +5 -26
- data/lib/bushido/command.rb +33 -2
- data/lib/bushido/user.rb +22 -36
- data/lib/bushido/utils.rb +4 -0
- data/lib/bushido/version.rb +1 -1
- metadata +17 -5
data/bin/bushido
CHANGED
@@ -3,10 +3,11 @@ require 'bushido'
|
|
3
3
|
|
4
4
|
options = {}
|
5
5
|
|
6
|
-
commands = [:reauth, :claim, :list, :create, :show, :start, :stop, :restart, :update, :open]
|
6
|
+
commands = [:reauth, :remove_account, :claim, :list, :create, :show, :start, :stop, :restart, :update, :open]
|
7
7
|
|
8
8
|
help_docs = {
|
9
9
|
:reauth => "bushido reauth - Reauthorize this machine to work under your Bushido account",
|
10
|
+
:remove_account => "bushido remove_account - Removes all Bushido information from this machine",
|
10
11
|
:claim => "bushido claim [NAME] - Claim a running Bushido app as your own",
|
11
12
|
:list => "bushido list - List all of your deployed Bushido apps",
|
12
13
|
:create => "bushido create [URL] - Deploy a Bushido app from a git repository in URL",
|
@@ -47,16 +48,17 @@ command = ARGV.first
|
|
47
48
|
|
48
49
|
if command
|
49
50
|
case command.downcase.to_sym
|
50
|
-
when :reauth
|
51
|
-
when :
|
52
|
-
when :
|
53
|
-
when :
|
54
|
-
when :
|
55
|
-
when :
|
56
|
-
when :
|
57
|
-
when :
|
58
|
-
when :
|
59
|
-
when :
|
51
|
+
when :reauth then Bushido::User.reauth
|
52
|
+
when :remove_account then Bushido::User.clear_config
|
53
|
+
when :claim then Bushido::App.claim(ARGV[1])
|
54
|
+
when :list then Bushido::App.list()
|
55
|
+
when :create then Bushido::App.create(ARGV[1])
|
56
|
+
when :show then Bushido::App.show(ARGV[1])
|
57
|
+
when :start then Bushido::App.start(ARGV[1])
|
58
|
+
when :stop then Bushido::App.stop(ARGV[1])
|
59
|
+
when :restart then Bushido::App.restart(ARGV[1])
|
60
|
+
when :update then Bushido::App.update(ARGV[1])
|
61
|
+
when :open then Bushido::App.open(ARGV[1])
|
60
62
|
end
|
61
63
|
else
|
62
64
|
puts "usage: bushido <command>\n\nSee bushido -h for more detailed instructions"
|
data/bushido.gemspec
CHANGED
@@ -10,7 +10,9 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.email = ["s@bushi.do"]
|
11
11
|
s.homepage = "http://trapm.com"
|
12
12
|
s.summary = %q{Command-lin interface for bushi.do}
|
13
|
-
s.description = %q{A command line tool to do everything with bushido, from signing up and deploying apps, to claiming, restarting, and updating existing apps}
|
13
|
+
s.description = %q{A command line tool to do everything with bushido, from signing up and deploying new apps, to claiming, restarting, and updating existing apps}
|
14
|
+
|
15
|
+
s.add_dependency "rest-client"
|
14
16
|
|
15
17
|
s.rubyforge_project = "bushido"
|
16
18
|
|
data/lib/bushido/app.rb
CHANGED
@@ -2,7 +2,9 @@ module Bushido
|
|
2
2
|
class App
|
3
3
|
class << self
|
4
4
|
def create(url)
|
5
|
-
|
5
|
+
Bushido::User.load_account
|
6
|
+
|
7
|
+
puts "Creating from #{url} for #{Bushido::User.email}..."
|
6
8
|
|
7
9
|
post({:app => {:url => url}})
|
8
10
|
end
|
@@ -30,35 +32,12 @@ module Bushido
|
|
30
32
|
url = "#{Temple}/apps/#{app}.json"
|
31
33
|
params = {:command => command}
|
32
34
|
|
33
|
-
show_response Bushido::Command.put_command(url, params)
|
35
|
+
Bushido::Command.show_response Bushido::Command.put_command(url, params)
|
34
36
|
end
|
35
37
|
|
36
38
|
def post(params)
|
37
39
|
url = "#{Temple}/apps"
|
38
|
-
show_response Bushido::Command.post_command(url, params)
|
39
|
-
end
|
40
|
-
|
41
|
-
def show_response(response)
|
42
|
-
show_messages response
|
43
|
-
show_errors response
|
44
|
-
end
|
45
|
-
|
46
|
-
def show_messages(response)
|
47
|
-
if response["messages"]
|
48
|
-
puts "Messages:"
|
49
|
-
response["messages"].each_with_index do |error, counter|
|
50
|
-
puts "\t#{counter + 1}. #{error}"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def show_errors(response)
|
56
|
-
if response["errors"]
|
57
|
-
puts "Errors:"
|
58
|
-
response["errors"].each_with_index do |error, counter|
|
59
|
-
puts "\t#{counter + 1}. #{error}"
|
60
|
-
end
|
61
|
-
end
|
40
|
+
Bushido::Command.show_response Bushido::Command.post_command(url, params)
|
62
41
|
end
|
63
42
|
|
64
43
|
def show(name)
|
data/lib/bushido/command.rb
CHANGED
@@ -15,12 +15,43 @@ module Bushido
|
|
15
15
|
response = JSON.parse raw
|
16
16
|
end
|
17
17
|
|
18
|
-
def put_command(url, params)
|
19
|
-
|
18
|
+
def put_command(url, params, meta={})
|
19
|
+
if meta[:force]
|
20
20
|
params.merge!({:auth_token => Bushido::User.authentication_token}) if params[:auth_token].nil? unless Bushido::User.authentication_token.nil?
|
21
21
|
|
22
22
|
raw = RestClient.put(url, params.to_json, :content_type => :json)
|
23
23
|
response = JSON.parse raw
|
24
|
+
|
25
|
+
else
|
26
|
+
Bushido::Utils.while_authorized do
|
27
|
+
params.merge!({:auth_token => Bushido::User.authentication_token}) if params[:auth_token].nil? unless Bushido::User.authentication_token.nil?
|
28
|
+
|
29
|
+
raw = RestClient.put(url, params.to_json, :content_type => :json)
|
30
|
+
response = JSON.parse raw
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def show_response(response)
|
36
|
+
show_messages response
|
37
|
+
show_errors response
|
38
|
+
end
|
39
|
+
|
40
|
+
def show_messages(response)
|
41
|
+
if response["messages"]
|
42
|
+
puts "Messages:"
|
43
|
+
response["messages"].each_with_index do |error, counter|
|
44
|
+
puts "\t#{counter + 1}. #{error}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def show_errors(response)
|
50
|
+
if response["errors"]
|
51
|
+
puts "Errors:"
|
52
|
+
response["errors"].each_with_index do |error, counter|
|
53
|
+
puts "\t#{counter + 1}. #{error}"
|
54
|
+
end
|
24
55
|
end
|
25
56
|
end
|
26
57
|
end
|
data/lib/bushido/user.rb
CHANGED
@@ -5,42 +5,43 @@ module Bushido
|
|
5
5
|
load_config || {}
|
6
6
|
end
|
7
7
|
|
8
|
+
def clear_config
|
9
|
+
print "Clearing out all local bushido configuration..."
|
10
|
+
FileUtils.rm_rf "#{Bushido::Utils.home_directory}/.bushido/"
|
11
|
+
puts "done"
|
12
|
+
end
|
13
|
+
|
8
14
|
def load_config
|
9
15
|
begin
|
10
|
-
return JSON.parse(File.open(File.expand_path("
|
16
|
+
return JSON.parse(File.open(File.expand_path("#{Bushido::Utils.home_directory}/.bushido/config.json"), 'r') { |l| l.read })
|
11
17
|
rescue Errno::ENOENT
|
12
18
|
end
|
13
19
|
end
|
14
20
|
|
15
21
|
def load_account
|
16
22
|
begin
|
17
|
-
@account = JSON.parse(File.open(File.expand_path("
|
23
|
+
@account = JSON.parse(File.open(File.expand_path("#{Bushido::Utils.home_directory}/.bushido/config.json"), 'r') { |l| l.read })
|
18
24
|
rescue Errno::ENOENT
|
19
|
-
@account = retrieve_account
|
25
|
+
@account = retrieve_account("Couldn't find your Bushido config on this machine.")
|
20
26
|
end
|
21
27
|
end
|
22
28
|
|
23
29
|
def reauth
|
24
|
-
retrieve_account
|
30
|
+
retrieve_account("Re-authenticating your account.")
|
25
31
|
end
|
26
32
|
|
27
33
|
def update_account(account)
|
28
34
|
print "Storing account information..."
|
29
|
-
|
35
|
+
Dir.mkdir "#{Bushido::Utils.home_directory}/.bushido" unless Dir.exists? "#{Bushido::Utils.home_directory}/.bushido"
|
36
|
+
File.open(File.expand_path("#{Bushido::Utils.home_directory}/.bushido/config.json"), 'w') { |f| f.write(account.to_json) }
|
30
37
|
puts " Done!"
|
31
38
|
end
|
32
39
|
|
33
|
-
def retrieve_account
|
40
|
+
def retrieve_account(msg)
|
41
|
+
puts "#{msg} Enter your username and password, and we'll either retrieve if from your existing account on our servers, or create a new account for you."
|
34
42
|
credentials = self.prompt_for_credentials
|
35
43
|
|
36
|
-
|
37
|
-
|
38
|
-
begin
|
39
|
-
result = JSON.parse(raw)
|
40
|
-
rescue
|
41
|
-
puts "Our servers didn't respond properly while trying to retrieve the account, this seems to be an issue on our end. Please email us at support@bushi.do to clear this up."
|
42
|
-
exit 1
|
43
|
-
end
|
44
|
+
result = Bushido::Command.put_command "#{Bushido::Temple}/users/verify", {:email => credentials[:email], :password => credentials[:password]}, {:force => true}
|
44
45
|
|
45
46
|
if result["authentication_token"] and result["error"].nil?
|
46
47
|
update_account({:email => credentials[:email], :authentication_token => result["authentication_token"]})
|
@@ -49,7 +50,7 @@ module Bushido
|
|
49
50
|
puts result["error"]
|
50
51
|
if result["error_type"] == "verification_failure"
|
51
52
|
puts ""
|
52
|
-
print "If this is your first time using Bushido, would you like to create an account using the email and password you just entered?\n[y/n]"
|
53
|
+
print "If this is your first time using Bushido, would you like to create an account using the email and password you just entered?\n[y/n] "
|
53
54
|
if $stdin.gets.chomp == "y"
|
54
55
|
self.create_account(credentials)
|
55
56
|
else
|
@@ -61,31 +62,16 @@ module Bushido
|
|
61
62
|
|
62
63
|
def create_account(credentials)
|
63
64
|
# GET instead of POST because of AuthenticityToken issues. Deal with it later.
|
64
|
-
|
65
|
-
raw = RestClient.get "#{Bushido::Temple}/users/create.json", {:params => {:email => credentials[:email], :password => credentials[:password], :accept => :json}}
|
66
|
-
rescue RestClient::UnprocessableEntity
|
67
|
-
puts "We ran into an error registering, either our site is down or that name is registered."
|
68
|
-
exit 1
|
69
|
-
end
|
65
|
+
result = Bushido::Command.post_command "#{Bushido::Temple}/users/create.json", {:email => credentials[:email], :password => credentials[:password]}
|
70
66
|
|
71
|
-
|
72
|
-
result = JSON.parse(raw)
|
73
|
-
#puts result.inspect
|
74
|
-
#puts "----------------------------------------------------------------------"
|
75
|
-
rescue JSON::ParserError
|
76
|
-
puts "Our servers didn't respond properly while trying to create an account, this seems to be an issue on our end. Please email us at support@bushi.do to clear this up."
|
77
|
-
exit 1
|
78
|
-
end
|
67
|
+
Bushido::Command.show_response result
|
79
68
|
|
80
|
-
if result["errors"]
|
81
|
-
|
82
|
-
|
83
|
-
|
69
|
+
if result["errors"].nil?
|
70
|
+
update_account result
|
71
|
+
return credentials
|
72
|
+
else
|
84
73
|
exit 1
|
85
74
|
end
|
86
|
-
|
87
|
-
update_account result
|
88
|
-
return credentials
|
89
75
|
end
|
90
76
|
|
91
77
|
def authentication_token
|
data/lib/bushido/utils.rb
CHANGED
data/lib/bushido/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sean Grove
|
@@ -16,9 +16,21 @@ cert_chain: []
|
|
16
16
|
|
17
17
|
date: 2011-01-26 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
|
-
dependencies:
|
20
|
-
|
21
|
-
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rest-client
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
version: "0"
|
31
|
+
type: :runtime
|
32
|
+
version_requirements: *id001
|
33
|
+
description: A command line tool to do everything with bushido, from signing up and deploying new apps, to claiming, restarting, and updating existing apps
|
22
34
|
email:
|
23
35
|
- s@bushi.do
|
24
36
|
executables:
|