debox 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile +3 -1
- data/README.org +116 -0
- data/config/database.yml.sample +26 -0
- data/lib/debox/api.rb +11 -4
- data/lib/debox/command/cap.rb +2 -2
- data/lib/debox/command/live.rb +10 -2
- data/lib/debox/command/log.rb +2 -2
- data/lib/debox/command/logs.rb +7 -3
- data/lib/debox/command/status.rb +11 -0
- data/lib/debox/version.rb +1 -1
- data/spec/integration/api/cap/cap_spec.rb +7 -7
- data/spec/integration/api/logs/index_spec.rb +7 -14
- data/spec/integration/api/logs/show_spec.rb +8 -6
- data/spec/integration/api/recipes/destroy_spec.rb +3 -3
- data/spec/integration/api/recipes/index_spec.rb +6 -3
- data/spec/integration/api/recipes/new_spec.rb +3 -1
- data/spec/integration/api/users/delete_spec.rb +1 -1
- data/spec/integration/api/users/index_spec.rb +1 -1
- data/spec/integration/commands/cap_spec.rb +4 -4
- data/spec/spec_helper.rb +8 -3
- data/spec/support/herlpers.rb +0 -9
- metadata +5 -3
- data/README.md +0 -29
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.org
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
* Debox
|
2
|
+
|
3
|
+
This gem is the client for the Debox Server. It allow you to create and update capistrano recipes, run tasks and manage users in the server.
|
4
|
+
|
5
|
+
* Installation
|
6
|
+
|
7
|
+
To install the latest version, run:
|
8
|
+
|
9
|
+
#+BEGIN_SRC sh
|
10
|
+
$ [sudo] gem install debox
|
11
|
+
#+END_SRC
|
12
|
+
|
13
|
+
* Usage
|
14
|
+
|
15
|
+
First thing to do after install the gem is login into your debox server.
|
16
|
+
|
17
|
+
#+BEGIN_SRC sh
|
18
|
+
$ debox login -h deboxserver.com -u youruser@email.com
|
19
|
+
#+END_SRC
|
20
|
+
|
21
|
+
** Getting help
|
22
|
+
|
23
|
+
To get a list of available commands run:
|
24
|
+
|
25
|
+
#+BEGIN_SRC sh
|
26
|
+
$ debox -h
|
27
|
+
|
28
|
+
Usage: debox command [options]
|
29
|
+
Commands:
|
30
|
+
recipes application # List recipes for the application
|
31
|
+
recipes:show application environment # Show a new capistrano recipe
|
32
|
+
recipes:new application environment # Create a new capistrano recipe
|
33
|
+
recipes:edit application environment # Edit a capistrano recipe
|
34
|
+
recipes:delete application environment # Delete a capistrano recipe
|
35
|
+
users # List all users in the debox server
|
36
|
+
users:new # Create user
|
37
|
+
users:delete email # Delete user with a given email
|
38
|
+
apps # List apps and envs
|
39
|
+
log application [environment] [index] # Show log. Last by default
|
40
|
+
logs application [environment] # List logs for application and env
|
41
|
+
deploy application enviroment # Deploy application
|
42
|
+
cap task application [environment] # Deploy application
|
43
|
+
login # Login in the debox server. Require -h param.
|
44
|
+
live application enviroment # Live log for application
|
45
|
+
key:show # Show the server ssh public key
|
46
|
+
key:copy target_host # Copy the server ssh public key to the target host
|
47
|
+
Options:
|
48
|
+
-h, --host SERVER_HOST Debox server url
|
49
|
+
-p, --port PORT Debox server port
|
50
|
+
-u, --user EMAIL User name
|
51
|
+
-?, --help Show this help
|
52
|
+
#+END_SRC
|
53
|
+
|
54
|
+
** Keys setup
|
55
|
+
|
56
|
+
You must add the public key for the user runnin the debox server to the server where capistrano have to connect and run task.
|
57
|
+
The debox client includes a command for help with this, you can run:
|
58
|
+
|
59
|
+
#+BEGIN_SRC sh
|
60
|
+
$ debox key:copy your_application_server
|
61
|
+
#+END_SRC
|
62
|
+
|
63
|
+
If you haven't access to this server, you can get the key with this command:
|
64
|
+
|
65
|
+
#+BEGIN_SRC sh
|
66
|
+
$ debox key:show
|
67
|
+
#+END_SRC
|
68
|
+
|
69
|
+
** Display applications configured in the server
|
70
|
+
|
71
|
+
To get a list of configured apps and its environment run:
|
72
|
+
|
73
|
+
#+BEGIN_SRC sh
|
74
|
+
$ debox apps
|
75
|
+
#+END_SRC
|
76
|
+
|
77
|
+
It will show a list of apps and configured envirments
|
78
|
+
|
79
|
+
** Adding applications or environments
|
80
|
+
|
81
|
+
To create an application or add a new env to an existent application.
|
82
|
+
|
83
|
+
#+BEGIN_SRC sh
|
84
|
+
$ debox recipes:new application_name environment_name
|
85
|
+
#+END_SRC
|
86
|
+
|
87
|
+
This command will open your default text editor, defined in the environment variable $EDITOR, with a boostraped capistrano recipe.
|
88
|
+
After save and close this file, it will be automatically uploaded to the server and ready to use.
|
89
|
+
|
90
|
+
** Edit environments
|
91
|
+
|
92
|
+
For change the capistrano recipe configured for any recipe run:
|
93
|
+
#+BEGIN_SRC sh
|
94
|
+
$ debox recipes:edit application_name environment_name
|
95
|
+
#+END_SRC
|
96
|
+
|
97
|
+
** Show environments
|
98
|
+
|
99
|
+
To get the content for a recipe just run:
|
100
|
+
|
101
|
+
#+BEGIN_SRC sh
|
102
|
+
$ debox recipes:show
|
103
|
+
#+END_SRC
|
104
|
+
|
105
|
+
** Run tasks
|
106
|
+
|
107
|
+
You can run any task defined in the capistrano recipe with the cap command:
|
108
|
+
|
109
|
+
#+BEGIN_SRC sh
|
110
|
+
$ debox cap deploy:setup app env
|
111
|
+
$ debox cap deploy app env
|
112
|
+
$ debox cap deploy:migrate app env
|
113
|
+
$ debox cap deploy:restart app env
|
114
|
+
#+END_SRC
|
115
|
+
|
116
|
+
It will stream the server output to the stdout
|
@@ -0,0 +1,26 @@
|
|
1
|
+
development:
|
2
|
+
adapter: mysql2
|
3
|
+
encoding: utf8
|
4
|
+
reconnect: false
|
5
|
+
database: debox_development
|
6
|
+
pool: 5
|
7
|
+
username: root
|
8
|
+
password:
|
9
|
+
|
10
|
+
test:
|
11
|
+
adapter: mysql2
|
12
|
+
encoding: utf8
|
13
|
+
reconnect: false
|
14
|
+
database: debox_test
|
15
|
+
pool: 5
|
16
|
+
username: root
|
17
|
+
password:
|
18
|
+
|
19
|
+
production:
|
20
|
+
adapter: mysql2
|
21
|
+
encoding: utf8
|
22
|
+
reconnect: false
|
23
|
+
database: debox_production
|
24
|
+
pool: 5
|
25
|
+
username: root
|
26
|
+
password:
|
data/lib/debox/api.rb
CHANGED
@@ -21,6 +21,11 @@ module Debox
|
|
21
21
|
get '/v1/apps'
|
22
22
|
end
|
23
23
|
|
24
|
+
# Server status
|
25
|
+
def self.status
|
26
|
+
get '/v1/status'
|
27
|
+
end
|
28
|
+
|
24
29
|
# users
|
25
30
|
#----------------------------------------------------------------------
|
26
31
|
|
@@ -90,10 +95,12 @@ module Debox
|
|
90
95
|
#----------------------------------------------------------------------
|
91
96
|
|
92
97
|
def self.live(opt, &block)
|
93
|
-
path = "/v1/live/log/#{opt[:
|
94
|
-
path
|
98
|
+
path = "/v1/live/log/job/#{opt[:job_id]}"
|
99
|
+
eventSource path, { }, block
|
100
|
+
end
|
95
101
|
|
96
|
-
|
102
|
+
def self.notifications(opt={ }, &block)
|
103
|
+
path = "/v1/live/notifications"
|
97
104
|
eventSource path, { }, block
|
98
105
|
end
|
99
106
|
|
@@ -106,7 +113,7 @@ module Debox
|
|
106
113
|
def self.log(opt)
|
107
114
|
path = "/v1/log/#{opt[:app]}"
|
108
115
|
path += "/#{opt[:env]}" if opt[:env]
|
109
|
-
path += "?
|
116
|
+
path += "?job_id=#{opt[:job_id]}" if opt[:job_id]
|
110
117
|
get_raw(path).body
|
111
118
|
end
|
112
119
|
|
data/lib/debox/command/cap.rb
CHANGED
@@ -7,8 +7,8 @@ class Debox::Command::Cap < Debox::Command::Base
|
|
7
7
|
deploy_params = { task: args[0], app: args[1] }
|
8
8
|
deploy_params[:env] = args[2] if args.count == 3
|
9
9
|
cap_request = Debox::API.cap(deploy_params)
|
10
|
-
|
11
|
-
Debox::API.live(
|
10
|
+
job_id = cap_request[:job_id]
|
11
|
+
Debox::API.live(job_id: job_id) do |chunk|
|
12
12
|
puts chunk
|
13
13
|
end
|
14
14
|
end
|
data/lib/debox/command/live.rb
CHANGED
@@ -2,8 +2,8 @@ require 'debox/command/base'
|
|
2
2
|
|
3
3
|
class Debox::Command::Live < Debox::Command::Base
|
4
4
|
|
5
|
-
help :
|
6
|
-
def
|
5
|
+
help :log, params: ['job_id'], text: 'Live log for job'
|
6
|
+
def log
|
7
7
|
opt = { app: args[0] }
|
8
8
|
opt[:env] = args[1] if args[1]
|
9
9
|
Debox::API.live(opt) do |chunk|
|
@@ -11,4 +11,12 @@ class Debox::Command::Live < Debox::Command::Base
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
+
|
15
|
+
help :notifications, text: 'Live notifications'
|
16
|
+
def notifications
|
17
|
+
Debox::API.notifications do |chunk|
|
18
|
+
puts chunk
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
14
22
|
end
|
data/lib/debox/command/log.rb
CHANGED
@@ -3,13 +3,13 @@ require 'debox/command/base'
|
|
3
3
|
class Debox::Command::Log < Debox::Command::Base
|
4
4
|
include Debox::Utils
|
5
5
|
|
6
|
-
help :index, params: ['application'],opt_params: ['environment', '
|
6
|
+
help :index, params: ['application'],opt_params: ['environment', 'job_id'],
|
7
7
|
text: "Show log. Last by default"
|
8
8
|
|
9
9
|
def index
|
10
10
|
opt = { app: args[0] }
|
11
11
|
opt[:env] = args[1] if args.length > 1
|
12
|
-
opt[:
|
12
|
+
opt[:job_id] = args[2] if args.length > 2
|
13
13
|
|
14
14
|
puts Debox::API.log opt
|
15
15
|
end
|
data/lib/debox/command/logs.rb
CHANGED
@@ -16,11 +16,15 @@ class Debox::Command::Logs < Debox::Command::Base
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def format_log_info(log)
|
19
|
+
status = log[:success] ? "SUCCESS" : "FAILED"
|
20
|
+
start_time = log[:start_time] ? DateTime.parse(log[:start_time]).to_s : ""
|
21
|
+
end_time = log[:end_time] ? DateTime.parse(log[:end_time]).to_s : ""
|
22
|
+
|
19
23
|
l = []
|
20
|
-
l << log[:
|
21
|
-
l <<
|
24
|
+
l << log[:id]
|
25
|
+
l << status
|
22
26
|
l << log[:task]
|
23
|
-
l <<
|
27
|
+
l << start_time
|
24
28
|
l << log[:error]
|
25
29
|
l.join "\t"
|
26
30
|
end
|
data/lib/debox/version.rb
CHANGED
@@ -3,25 +3,25 @@ describe 'cap' do
|
|
3
3
|
|
4
4
|
it 'should deal with invalid app' do
|
5
5
|
configure_admin
|
6
|
-
DeboxServer::
|
6
|
+
DeboxServer::jobs_queue.should_not_receive(:add)
|
7
7
|
expect {
|
8
8
|
Debox::API.cap(app: 'test')
|
9
|
-
}.to raise_error Debox::DeboxServerException,
|
9
|
+
}.to raise_error Debox::DeboxServerException, "400: Couldn't find App with name = test"
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should deal with invalid env' do
|
13
13
|
configure_admin
|
14
14
|
server.create_recipe('test', :production, 'invalid content')
|
15
|
-
DeboxServer::
|
15
|
+
DeboxServer::jobs_queue.should_not_receive(:add)
|
16
16
|
expect {
|
17
17
|
Debox::API.cap(app: 'test', env: 'invalid')
|
18
|
-
}.to raise_error Debox::DeboxServerException,
|
18
|
+
}.to raise_error Debox::DeboxServerException, "400: Couldn't find Recipe with name = invalid"
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'should run a cap task gith a given app' do
|
22
22
|
configure_admin
|
23
23
|
server.create_recipe('test', :production, 'invalid content')
|
24
|
-
DeboxServer::
|
24
|
+
DeboxServer::jobs_queue.should_receive(:add)
|
25
25
|
|
26
26
|
job = Debox::API.cap app: 'test'
|
27
27
|
job[:app].should eq 'test'
|
@@ -33,7 +33,7 @@ describe 'cap' do
|
|
33
33
|
configure_admin
|
34
34
|
server.create_recipe('test', :production, 'invalid content')
|
35
35
|
server.create_recipe('test', :staging, 'invalid content')
|
36
|
-
DeboxServer::
|
36
|
+
DeboxServer::jobs_queue.should_receive(:add)
|
37
37
|
|
38
38
|
job = Debox::API.cap app: 'test', env: 'staging'
|
39
39
|
job[:app].should eq 'test'
|
@@ -46,7 +46,7 @@ describe 'cap' do
|
|
46
46
|
configure_admin
|
47
47
|
server.create_recipe('test', :production, 'invalid content')
|
48
48
|
server.create_recipe('test', :staging, 'invalid content')
|
49
|
-
DeboxServer::
|
49
|
+
DeboxServer::jobs_queue.should_receive(:add)
|
50
50
|
|
51
51
|
job = Debox::API.cap app: 'test', env: 'staging', task: 'node:setup'
|
52
52
|
job[:app].should eq 'test'
|
@@ -2,38 +2,31 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'logs' do
|
4
4
|
it 'should return all the logs' do
|
5
|
-
time = DateTime.now
|
6
|
-
out = OpenStruct.new time: time, success: true, buffer: 'Some log content', error: 'Log result'
|
7
5
|
server.create_recipe('test', 'production', 'content')
|
8
|
-
job =
|
9
|
-
job
|
6
|
+
job = Job.new error: 'Log result'
|
7
|
+
Recipe.any_instance.should_receive(:jobs).and_return [job]
|
10
8
|
|
11
9
|
configure_admin
|
12
10
|
|
13
11
|
logs = Debox::API.logs app: 'test', env: 'production'
|
14
12
|
logs.count.should eq 1
|
15
13
|
saved = logs.first
|
16
|
-
|
14
|
+
|
17
15
|
saved[:error].should eq 'Log result'
|
18
|
-
saved[:status].should eq 'success'
|
19
16
|
end
|
20
17
|
|
21
18
|
it 'should set default env if not set and only one available' do
|
22
|
-
time = DateTime.now
|
23
|
-
out = OpenStruct.new time: time, success: true, buffer: 'Some log content', error: 'Log result'
|
24
19
|
server.create_recipe('test', 'production', 'content')
|
25
|
-
job =
|
26
|
-
job
|
20
|
+
job = Job.new error: 'Log result'
|
21
|
+
Recipe.any_instance.should_receive(:jobs).and_return [job]
|
27
22
|
|
28
23
|
configure_admin
|
29
24
|
|
30
|
-
logs = Debox::API.logs app: 'test'
|
25
|
+
logs = Debox::API.logs app: 'test'
|
31
26
|
logs.count.should eq 1
|
32
27
|
saved = logs.first
|
33
28
|
|
34
|
-
DateTime.parse(saved[:time]).to_s.should eq time.to_s
|
35
29
|
saved[:error].should eq 'Log result'
|
36
|
-
saved[:status].should eq 'success'
|
37
30
|
end
|
38
31
|
|
39
32
|
it 'should empty array withut logs' do
|
@@ -47,7 +40,7 @@ describe 'logs' do
|
|
47
40
|
configure_admin
|
48
41
|
expect {
|
49
42
|
Debox::API.logs app: 'test', env: 'production'
|
50
|
-
}.to raise_error Debox::DeboxServerException,
|
43
|
+
}.to raise_error Debox::DeboxServerException, "400: Couldn't find App with name = test"
|
51
44
|
|
52
45
|
end
|
53
46
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
describe 'log' do
|
3
3
|
it 'should return the log' do
|
4
|
-
out = OpenStruct.new time: DateTime.now, success: true, buffer: 'Some log content', error: 'Log result'
|
5
4
|
server.create_recipe('test', 'production', 'content')
|
6
|
-
job =
|
7
|
-
|
5
|
+
job = Job.new error: 'Log result', log: 'Some log content'
|
6
|
+
jobs = double('jobs')
|
7
|
+
jobs.should_receive(:last).and_return job
|
8
|
+
Recipe.any_instance.should_receive(:jobs).and_return jobs
|
8
9
|
|
9
10
|
configure_admin
|
10
11
|
|
@@ -13,10 +14,11 @@ describe 'log' do
|
|
13
14
|
end
|
14
15
|
|
15
16
|
it 'should return the log without env' do
|
16
|
-
out = OpenStruct.new time: DateTime.now, success: true, buffer: 'Some log content', error: 'Log result'
|
17
17
|
server.create_recipe('test', 'production', 'content')
|
18
|
-
job =
|
19
|
-
|
18
|
+
job = Job.new error: 'Log result', log: 'Some log content'
|
19
|
+
jobs = double('jobs')
|
20
|
+
jobs.should_receive(:last).and_return job
|
21
|
+
Recipe.any_instance.should_receive(:jobs).and_return jobs
|
20
22
|
|
21
23
|
configure_admin
|
22
24
|
|
@@ -5,10 +5,10 @@ describe 'recipes_delete' do
|
|
5
5
|
|
6
6
|
it 'should destroy the recipe if exists' do
|
7
7
|
configure_admin
|
8
|
-
server.create_recipe('test', :staging, 'sample content')
|
9
|
-
server.create_recipe('test', :production, 'sample content')
|
8
|
+
staging_recipe = server.create_recipe('test', :staging, 'sample content')
|
9
|
+
production_recipe = server.create_recipe('test', :production, 'sample content')
|
10
10
|
response = Debox::API.recipes_destroy app: 'test', env: 'staging'
|
11
11
|
response.code.should eq '200'
|
12
|
-
|
12
|
+
Recipe.all.should eq [production_recipe]
|
13
13
|
end
|
14
14
|
end
|
@@ -1,11 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'recipes index' do
|
4
|
-
|
4
|
+
|
5
|
+
it 'should return invalid if app does not exists' do
|
5
6
|
configure_admin
|
6
|
-
|
7
|
-
|
7
|
+
expect {
|
8
|
+
Debox::API.recipes(app: 'test')
|
9
|
+
}.to raise_error Debox::DeboxServerException, "400: Couldn't find App with name = test"
|
8
10
|
|
11
|
+
end
|
9
12
|
|
10
13
|
it 'should return current recipes if any' do
|
11
14
|
app = 'test'
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'recipes new' do
|
4
|
-
|
4
|
+
|
5
|
+
xit 'should create a new config file with the content of the template' do
|
6
|
+
|
5
7
|
configure_admin
|
6
8
|
response = Debox::API.recipes_new app: 'test_app', env: 'production'
|
7
9
|
response.should match 'test_app'
|
@@ -2,14 +2,14 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'cap command' do
|
4
4
|
it 'should call API::cap and API::live' do
|
5
|
-
Debox::API.should_receive(:cap).with(app: 'test', env: 'prod', task: 'deploy').and_return
|
6
|
-
Debox::API.should_receive(:live).with(
|
5
|
+
Debox::API.should_receive(:cap).with(app: 'test', env: 'prod', task: 'deploy').and_return job_id: 1
|
6
|
+
Debox::API.should_receive(:live).with(job_id: 1)
|
7
7
|
run_command 'cap deploy test prod'
|
8
8
|
end
|
9
9
|
|
10
10
|
it 'env is optional' do
|
11
|
-
Debox::API.should_receive(:cap).with(app: 'test', task: 'deploy').and_return
|
12
|
-
Debox::API.should_receive(:live).with(
|
11
|
+
Debox::API.should_receive(:cap).with(app: 'test', task: 'deploy').and_return job_id: 1
|
12
|
+
Debox::API.should_receive(:live).with(job_id: 1)
|
13
13
|
run_command 'cap deploy test'
|
14
14
|
end
|
15
15
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
ENV['RACK_ENV'] = 'test'
|
2
|
+
ENV['DEBOX_ROOT'] = File.join(File.dirname(__FILE__), '../')
|
2
3
|
|
3
4
|
require 'rubygems'
|
4
5
|
require 'bundler'
|
5
6
|
require 'rack'
|
6
7
|
require 'thin'
|
7
8
|
require 'debox_server'
|
8
|
-
|
9
|
+
require 'debox_server/api'
|
10
|
+
require 'database_cleaner'
|
9
11
|
Bundler.require
|
10
12
|
|
11
13
|
require "debox/cli"
|
@@ -26,10 +28,13 @@ DEBOX_SERVER_PORT = 9393
|
|
26
28
|
debox_server_start DEBOX_SERVER_PORT
|
27
29
|
|
28
30
|
RSpec.configure do |config|
|
31
|
+
config.before(:suite) do
|
32
|
+
DatabaseCleaner.strategy = :truncation
|
33
|
+
DatabaseCleaner.clean
|
34
|
+
end
|
29
35
|
|
30
36
|
# Cleanup database after each test
|
31
37
|
config.after(:each) do
|
32
|
-
|
38
|
+
DatabaseCleaner.clean
|
33
39
|
end
|
34
|
-
|
35
40
|
end
|
data/spec/support/herlpers.rb
CHANGED
@@ -26,15 +26,6 @@ def configure
|
|
26
26
|
Debox::Config.stub(:config).and_return host: 'localhost', port: DEBOX_SERVER_PORT
|
27
27
|
end
|
28
28
|
|
29
|
-
# Build a job with stdout and capistrano methos stubbed
|
30
|
-
def stubbed_job(app, env, task='deploy', out=nil)
|
31
|
-
out = OpenStruct.new time: DateTime.now, success: true unless out
|
32
|
-
job = DeboxServer::Job.new(app, env, task)
|
33
|
-
job.stub(:stdout) { out }
|
34
|
-
job.stub(:capistrano) { { } }
|
35
|
-
return job
|
36
|
-
end
|
37
|
-
|
38
29
|
def run_command(args_str, options={})
|
39
30
|
args = args_str.split
|
40
31
|
given_command = args.shift.strip
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: debox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
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: 2013-
|
12
|
+
date: 2013-09-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -103,9 +103,10 @@ files:
|
|
103
103
|
- .rspec
|
104
104
|
- Gemfile
|
105
105
|
- LICENSE
|
106
|
-
- README.
|
106
|
+
- README.org
|
107
107
|
- Rakefile
|
108
108
|
- bin/debox
|
109
|
+
- config/database.yml.sample
|
109
110
|
- debox.gemspec
|
110
111
|
- lib/debox.rb
|
111
112
|
- lib/debox/api.rb
|
@@ -122,6 +123,7 @@ files:
|
|
122
123
|
- lib/debox/command/login.rb
|
123
124
|
- lib/debox/command/logs.rb
|
124
125
|
- lib/debox/command/recipes.rb
|
126
|
+
- lib/debox/command/status.rb
|
125
127
|
- lib/debox/config.rb
|
126
128
|
- lib/debox/utils.rb
|
127
129
|
- lib/debox/version.rb
|
data/README.md
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# Debox
|
2
|
-
|
3
|
-
Command line tool for Debox
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
gem 'debox'
|
10
|
-
|
11
|
-
And then execute:
|
12
|
-
|
13
|
-
$ bundle
|
14
|
-
|
15
|
-
Or install it yourself as:
|
16
|
-
|
17
|
-
$ gem install debox
|
18
|
-
|
19
|
-
## Usage
|
20
|
-
|
21
|
-
TODO: Write usage instructions here
|
22
|
-
|
23
|
-
## Contributing
|
24
|
-
|
25
|
-
1. Fork it
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
-
3. Commit your changes (`git commit -am 'Added some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
-
5. Create new Pull Request
|