webbynode 1.0.4 → 1.0.4.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of webbynode might be problematic. Click here for more details.
- data/Gemfile +20 -0
- data/Gemfile.lock +69 -0
- data/Guardfile +5 -0
- data/Manifest +8 -0
- data/Rakefile +1 -1
- data/autotest/discover.rb +2 -0
- data/lib/webbynode/commands/authorize_root.rb +23 -0
- data/lib/webbynode/engines/all.rb +1 -0
- data/lib/webbynode/engines/html.rb +5 -0
- data/lib/webbynode/engines/rails.rb +9 -0
- data/lib/webbynode/engines/rails3.rb +7 -0
- data/lib/webbynode/server.rb +24 -5
- data/lib/webbynode/ssh_keys.rb +4 -0
- data/lib/webbynode.rb +3 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/webbynode/commands/authorize_root_spec.rb +59 -0
- data/spec/webbynode/commands/init_spec.rb +1 -1
- data/spec/webbynode/commands/push_spec.rb +2 -2
- data/spec/webbynode/engines/html_spec.rb +12 -0
- data/spec/webbynode/engines/rails3_spec.rb +15 -0
- data/spec/webbynode/engines/rails_spec.rb +18 -1
- data/spec/webbynode/server_spec.rb +90 -1
- data/webbynode.gemspec +4 -4
- metadata +14 -3
data/Gemfile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
source :rubygems
|
2
|
+
|
3
|
+
gem 'httparty'
|
4
|
+
gem 'domainatrix'
|
5
|
+
gem 'net-ssh'
|
6
|
+
gem 'highline'
|
7
|
+
|
8
|
+
group :development do
|
9
|
+
gem 'rspec'
|
10
|
+
gem 'growl'
|
11
|
+
gem 'guard'
|
12
|
+
gem 'guard-rspec'
|
13
|
+
gem 'ZenTest'
|
14
|
+
gem 'autotest-growl'
|
15
|
+
gem 'database_cleaner'
|
16
|
+
gem 'awesome_print'
|
17
|
+
gem 'fakeweb'
|
18
|
+
gem 'echoe'
|
19
|
+
gem 'rcov'
|
20
|
+
end
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
ZenTest (4.5.0)
|
5
|
+
addressable (2.2.4)
|
6
|
+
allison (2.0.3)
|
7
|
+
autotest-growl (0.2.9)
|
8
|
+
awesome_print (0.3.2)
|
9
|
+
configuration (1.2.0)
|
10
|
+
crack (0.1.8)
|
11
|
+
database_cleaner (0.6.4)
|
12
|
+
diff-lcs (1.1.2)
|
13
|
+
domainatrix (0.0.7)
|
14
|
+
addressable
|
15
|
+
echoe (4.5.1)
|
16
|
+
allison
|
17
|
+
gemcutter
|
18
|
+
rubyforge
|
19
|
+
fakeweb (1.3.0)
|
20
|
+
gemcutter (0.6.1)
|
21
|
+
growl (1.0.3)
|
22
|
+
guard (0.3.0)
|
23
|
+
open_gem (~> 1.4.2)
|
24
|
+
thor (~> 0.14.6)
|
25
|
+
guard-rspec (0.1.9)
|
26
|
+
guard (>= 0.2.2)
|
27
|
+
highline (1.6.1)
|
28
|
+
httparty (0.7.4)
|
29
|
+
crack (= 0.1.8)
|
30
|
+
json_pure (1.5.1)
|
31
|
+
launchy (0.3.7)
|
32
|
+
configuration (>= 0.0.5)
|
33
|
+
rake (>= 0.8.1)
|
34
|
+
net-ssh (2.1.0)
|
35
|
+
open_gem (1.4.2)
|
36
|
+
launchy (~> 0.3.5)
|
37
|
+
rake (0.8.7)
|
38
|
+
rcov (0.9.9)
|
39
|
+
rspec (2.5.0)
|
40
|
+
rspec-core (~> 2.5.0)
|
41
|
+
rspec-expectations (~> 2.5.0)
|
42
|
+
rspec-mocks (~> 2.5.0)
|
43
|
+
rspec-core (2.5.1)
|
44
|
+
rspec-expectations (2.5.0)
|
45
|
+
diff-lcs (~> 1.1.2)
|
46
|
+
rspec-mocks (2.5.0)
|
47
|
+
rubyforge (2.0.4)
|
48
|
+
json_pure (>= 1.1.7)
|
49
|
+
thor (0.14.6)
|
50
|
+
|
51
|
+
PLATFORMS
|
52
|
+
ruby
|
53
|
+
|
54
|
+
DEPENDENCIES
|
55
|
+
ZenTest
|
56
|
+
autotest-growl
|
57
|
+
awesome_print
|
58
|
+
database_cleaner
|
59
|
+
domainatrix
|
60
|
+
echoe
|
61
|
+
fakeweb
|
62
|
+
growl
|
63
|
+
guard
|
64
|
+
guard-rspec
|
65
|
+
highline
|
66
|
+
httparty
|
67
|
+
net-ssh
|
68
|
+
rcov
|
69
|
+
rspec
|
data/Guardfile
ADDED
data/Manifest
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
+
Gemfile
|
2
|
+
Gemfile.lock
|
3
|
+
Guardfile
|
1
4
|
Manifest
|
2
5
|
PostInstall.txt
|
3
6
|
README.rdoc
|
4
7
|
Rakefile
|
5
8
|
assets/webbynode.png
|
9
|
+
autotest/discover.rb
|
6
10
|
bin/webbynode
|
7
11
|
bin/wn
|
8
12
|
changelog.rdoc
|
@@ -27,6 +31,7 @@ lib/webbynode/commands/add_key.rb
|
|
27
31
|
lib/webbynode/commands/addons.rb
|
28
32
|
lib/webbynode/commands/alias.rb
|
29
33
|
lib/webbynode/commands/apps.rb
|
34
|
+
lib/webbynode/commands/authorize_root.rb
|
30
35
|
lib/webbynode/commands/change_dns.rb
|
31
36
|
lib/webbynode/commands/config.rb
|
32
37
|
lib/webbynode/commands/console.rb
|
@@ -48,6 +53,7 @@ lib/webbynode/commands/webbies.rb
|
|
48
53
|
lib/webbynode/engines/all.rb
|
49
54
|
lib/webbynode/engines/django.rb
|
50
55
|
lib/webbynode/engines/engine.rb
|
56
|
+
lib/webbynode/engines/html.rb
|
51
57
|
lib/webbynode/engines/nodejs.rb
|
52
58
|
lib/webbynode/engines/php.rb
|
53
59
|
lib/webbynode/engines/rack.rb
|
@@ -104,6 +110,7 @@ spec/webbynode/commands/add_key_spec.rb
|
|
104
110
|
spec/webbynode/commands/addons_spec.rb
|
105
111
|
spec/webbynode/commands/alias_spec.rb
|
106
112
|
spec/webbynode/commands/apps_spec.rb
|
113
|
+
spec/webbynode/commands/authorize_root_spec.rb
|
107
114
|
spec/webbynode/commands/change_dns_spec.rb
|
108
115
|
spec/webbynode/commands/config_spec.rb
|
109
116
|
spec/webbynode/commands/console_spec.rb
|
@@ -121,6 +128,7 @@ spec/webbynode/commands/version_spec.rb
|
|
121
128
|
spec/webbynode/commands/webbies_spec.rb
|
122
129
|
spec/webbynode/engines/django_spec.rb
|
123
130
|
spec/webbynode/engines/engine_spec.rb
|
131
|
+
spec/webbynode/engines/html_spec.rb
|
124
132
|
spec/webbynode/engines/nodejs_spec.rb
|
125
133
|
spec/webbynode/engines/php_spec.rb
|
126
134
|
spec/webbynode/engines/rack_spec.rb
|
data/Rakefile
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Webbynode::Commands
|
2
|
+
class AuthorizeRoot < Webbynode::Command
|
3
|
+
requires_initialization!
|
4
|
+
|
5
|
+
summary "Adds your ssh public key to your Webby's root user"
|
6
|
+
option :passphrase, "If present, passphrase will be used when creating a new SSH key", :take => :words
|
7
|
+
|
8
|
+
add_alias "authorizeroot"
|
9
|
+
add_alias "authroot"
|
10
|
+
|
11
|
+
def execute
|
12
|
+
server.add_ssh_root_key LocalSshKey, options[:passphrase].value
|
13
|
+
io.log "Your local SSH Key has been added to your Webby's root user", :notify
|
14
|
+
|
15
|
+
rescue Webbynode::InvalidAuthentication
|
16
|
+
io.log "Could not connect to webby: invalid authentication.", true
|
17
|
+
|
18
|
+
rescue Webbynode::PermissionError
|
19
|
+
io.log "Could not create an SSH key: permission error.", true
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -8,5 +8,14 @@ module Webbynode::Engines
|
|
8
8
|
io.directory?('app') && io.directory?('app/controllers') &&
|
9
9
|
io.file_exists?('config/environment.rb')
|
10
10
|
end
|
11
|
+
|
12
|
+
def prepare
|
13
|
+
contents = io.read_file("config/database.yml")
|
14
|
+
if contents =~ /mysql2/
|
15
|
+
io.add_setting "rails_adapter", "mysql2"
|
16
|
+
else
|
17
|
+
io.remove_setting "rails_adapter"
|
18
|
+
end
|
19
|
+
end
|
11
20
|
end
|
12
21
|
end
|
@@ -17,6 +17,13 @@ module Webbynode::Engines
|
|
17
17
|
|
18
18
|
def check_gemfile
|
19
19
|
return unless gemfile.present?
|
20
|
+
|
21
|
+
contents = io.read_file("config/database.yml")
|
22
|
+
if contents =~ /mysql2/
|
23
|
+
io.add_setting "rails3_adapter", "mysql2"
|
24
|
+
else
|
25
|
+
io.remove_setting "rails3_adapter"
|
26
|
+
end
|
20
27
|
|
21
28
|
dependencies = gemfile.dependencies(:without => [:development, :test])
|
22
29
|
if dependencies.include? 'sqlite3-ruby'
|
data/lib/webbynode/server.rb
CHANGED
@@ -26,16 +26,35 @@ module Webbynode
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def add_ssh_key(key_file, passphrase="")
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
add_ssh_key_in "~", key_file, passphrase
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_ssh_root_key(key_file, passphrase="")
|
33
|
+
create_ssh_settings "/root", true
|
34
|
+
add_ssh_key_in "/root", key_file, passphrase, true
|
34
35
|
end
|
35
36
|
|
36
37
|
def application_pushed?
|
37
38
|
return false if remote_executor.exec("cd #{pushand.parse_remote_app_name}") =~ /No such file or directory/
|
38
39
|
true
|
39
40
|
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def create_ssh_settings(folder, sudo=false)
|
45
|
+
sudo = sudo ? "sudo " : ""
|
46
|
+
commands = "#{sudo}bash -c 'test -f #{folder}/.ssh/authorized_keys || (mkdir #{folder}/.ssh 2>/dev/null; chmod 700 #{folder}/.ssh; touch #{folder}/.ssh/authorized_keys; chmod 644 #{folder}/.ssh/authorized_keys)'"
|
47
|
+
remote_executor.exec commands
|
48
|
+
end
|
49
|
+
|
50
|
+
def add_ssh_key_in(folder, key_file, passphrase, sudo=false)
|
51
|
+
io.create_local_key(passphrase) unless io.file_exists?(key_file)
|
52
|
+
remote_executor.create_folder("#{folder}/.ssh")
|
53
|
+
|
54
|
+
sudo = sudo ? "sudo " : ""
|
55
|
+
key_contents = io.read_file(key_file)
|
56
|
+
commands = "#{sudo}bash -c 'grep \"#{key_contents}\" #{folder}/.ssh/authorized_keys || (echo \"#{key_contents}\" >> #{folder}/.ssh/authorized_keys; chmod 644 #{folder}/.ssh/authorized_keys)'"
|
57
|
+
remote_executor.exec commands
|
58
|
+
end
|
40
59
|
end
|
41
60
|
end
|
data/lib/webbynode/ssh_keys.rb
CHANGED
@@ -6,6 +6,10 @@ module Webbynode
|
|
6
6
|
run_remote_command "mkdir ~/.ssh 2>/dev/null; chmod 700 ~/.ssh; echo \"#{key}\" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys"
|
7
7
|
end
|
8
8
|
|
9
|
+
def add_key_to_remote_user(key, folder)
|
10
|
+
run_remote_command "mkdir #{folder}/.ssh 2>/dev/null; chmod 700 #{folder}/.ssh; echo \"#{key}\" >> #{folder}/.ssh/authorized_keys; chmod 644 #{folder}/.ssh/authorized_keys"
|
11
|
+
end
|
12
|
+
|
9
13
|
# lists all authorized keys on the remote server
|
10
14
|
def remote_authorized_keys
|
11
15
|
run_remote_command "cat \$HOME/.ssh/authorized_keys"
|
data/lib/webbynode.rb
CHANGED
@@ -33,6 +33,7 @@ require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'django')
|
|
33
33
|
require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'php')
|
34
34
|
require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'nodejs')
|
35
35
|
require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'wsgi')
|
36
|
+
require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'html')
|
36
37
|
require File.join(File.dirname(__FILE__), 'webbynode', 'engines', 'all')
|
37
38
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'apps')
|
38
39
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'addons')
|
@@ -55,12 +56,13 @@ require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'webbies')
|
|
55
56
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'version')
|
56
57
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'user')
|
57
58
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'settings')
|
59
|
+
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'authorize_root')
|
58
60
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'console')
|
59
61
|
require File.join(File.dirname(__FILE__), 'webbynode', 'commands', 'logs')
|
60
62
|
require File.join(File.dirname(__FILE__), 'webbynode', 'application')
|
61
63
|
|
62
64
|
module Webbynode
|
63
|
-
VERSION = '1.0.4'
|
65
|
+
VERSION = '1.0.4.2'
|
64
66
|
end
|
65
67
|
|
66
68
|
class Array
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Require RSpec
|
2
2
|
require 'rubygems'
|
3
|
-
require '
|
3
|
+
require 'rspec'
|
4
4
|
require 'pp'
|
5
5
|
begin
|
6
6
|
require 'fakeweb'
|
@@ -44,7 +44,7 @@ module Kernel
|
|
44
44
|
def ppd(x); $stderr.puts x.pretty_inspect; end
|
45
45
|
end
|
46
46
|
|
47
|
-
|
47
|
+
RSpec.configure do |config|
|
48
48
|
config.include Webbynode::IoStub
|
49
49
|
|
50
50
|
config.before(:each) do
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# Load Spec Helper
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
|
3
|
+
|
4
|
+
describe Webbynode::Commands::AuthorizeRoot do
|
5
|
+
let(:server) { double("server") }
|
6
|
+
|
7
|
+
it "is aliased to authorizeroot" do
|
8
|
+
Webbynode::Commands.should_receive(:const_get).with("AuthorizeRoot")
|
9
|
+
Webbynode::Command.for("authorizeroot")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "is aliased to authroot" do
|
13
|
+
Webbynode::Commands.should_receive(:const_get).with("AuthorizeRoot")
|
14
|
+
Webbynode::Command.for("authroot")
|
15
|
+
end
|
16
|
+
|
17
|
+
context "when successful" do
|
18
|
+
it "uploads the local ssh key into the server's root folder" do
|
19
|
+
server.should_receive(:add_ssh_root_key).with(LocalSshKey, nil)
|
20
|
+
|
21
|
+
cmd = Webbynode::Commands::AuthorizeRoot.new
|
22
|
+
cmd.should_receive(:server).any_number_of_times.and_return(server)
|
23
|
+
cmd.execute
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should create an ssh key with a provided passphrase" do
|
27
|
+
server.should_receive(:add_ssh_root_key).with(LocalSshKey, "my_passphrase")
|
28
|
+
|
29
|
+
cmd = Webbynode::Commands::AuthorizeRoot.new("--passphrase=my_passphrase")
|
30
|
+
cmd.should_receive(:server).any_number_of_times.and_return(server)
|
31
|
+
cmd.execute
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "when unsuccessful" do
|
36
|
+
let(:cmd) { Webbynode::Commands::AuthorizeRoot.new }
|
37
|
+
let(:io) { double("Io").as_null_object }
|
38
|
+
|
39
|
+
before(:each) do
|
40
|
+
cmd.should_receive(:io).any_number_of_times.and_return(io)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "reports an error if the ssh key could not be added due to invalid authentication" do
|
44
|
+
server.should_receive(:add_ssh_root_key).and_raise(Webbynode::InvalidAuthentication)
|
45
|
+
|
46
|
+
cmd.should_receive(:server).any_number_of_times.and_return(server)
|
47
|
+
io.should_receive(:log).with("Could not connect to webby: invalid authentication.", true)
|
48
|
+
cmd.execute
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should report an error if the ssh key could not be added due to a permission error" do
|
52
|
+
server.should_receive(:add_ssh_root_key).and_raise(Webbynode::PermissionError)
|
53
|
+
|
54
|
+
cmd.should_receive(:server).any_number_of_times.and_return(server)
|
55
|
+
io.should_receive(:log).with("Could not create an SSH key: permission error.", true)
|
56
|
+
cmd.execute
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -267,7 +267,7 @@ describe Webbynode::Commands::Init do
|
|
267
267
|
io.stub(:file_exists?).with("script/rails").and_return(false)
|
268
268
|
io.stub(:directory?).with('app').and_return(true)
|
269
269
|
io.stub(:directory?).with('app/controllers').and_return(true)
|
270
|
-
io.stub(:file_exists?).with('config/
|
270
|
+
io.stub(:file_exists?).with('config/environment.rb').and_return(true)
|
271
271
|
|
272
272
|
Webbynode::Io.stub(:new).and_return(io)
|
273
273
|
Webbynode::Git.stub(:new).and_return(git_handler)
|
@@ -163,7 +163,7 @@ describe Webbynode::Commands::Push do
|
|
163
163
|
describe "#perform_before_tasks" do
|
164
164
|
before(:each) do
|
165
165
|
push.before_tasks.stub!(:has_tasks?).and_return(true)
|
166
|
-
io.stub!(:exec).with("git push webbynode master")
|
166
|
+
io.stub!(:exec).with("git push webbynode +HEAD:master", false)
|
167
167
|
end
|
168
168
|
|
169
169
|
it "should provide feedback to the user that it's going to perform the tasks" do
|
@@ -182,7 +182,7 @@ describe Webbynode::Commands::Push do
|
|
182
182
|
describe "#perform_after_tasks" do
|
183
183
|
before(:each) do
|
184
184
|
push.after_tasks.stub!(:has_tasks?).and_return(true)
|
185
|
-
io.stub!(:exec).with("git push webbynode master")
|
185
|
+
io.stub!(:exec).with("git push webbynode +HEAD:master", false)
|
186
186
|
end
|
187
187
|
|
188
188
|
it "should provide feedback to the user that it's going to perform the tasks" do
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Load Spec Helper
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'spec_helper')
|
3
|
+
|
4
|
+
describe Webbynode::Engines::Html do
|
5
|
+
describe 'class methods' do
|
6
|
+
subject { Webbynode::Engines::Html }
|
7
|
+
|
8
|
+
its(:engine_id) { should == 'html' }
|
9
|
+
its(:engine_name) { should == 'HTML' }
|
10
|
+
its(:git_excluded) { should be_empty }
|
11
|
+
end
|
12
|
+
end
|
@@ -28,6 +28,21 @@ describe Webbynode::Engines::Rails3 do
|
|
28
28
|
subject.stub!(:gemfile).and_return(gemfile)
|
29
29
|
lambda { subject.prepare }.should raise_error(Webbynode::Command::CommandError)
|
30
30
|
end
|
31
|
+
|
32
|
+
it "adds a rails3_adapter setting when mysql2 is used on the database.yml" do
|
33
|
+
io.should_receive(:read_file).with("config/database.yml").and_return("mysql2")
|
34
|
+
io.should_receive(:add_setting).with('rails3_adapter', 'mysql2')
|
35
|
+
|
36
|
+
subject.prepare
|
37
|
+
end
|
38
|
+
|
39
|
+
it "doesn't add a rails3_adapter otherwise" do
|
40
|
+
io.should_receive(:read_file).with("config/database.yml").and_return("mysql")
|
41
|
+
io.should_receive(:add_setting).with('rails3_adapter', 'mysql2').never
|
42
|
+
io.should_receive(:remove_setting).with('rails3_adapter')
|
43
|
+
|
44
|
+
subject.prepare
|
45
|
+
end
|
31
46
|
end
|
32
47
|
|
33
48
|
describe '#detect' do
|
@@ -22,7 +22,7 @@ describe Webbynode::Engines::Rails do
|
|
22
22
|
it "returns true if app app/controllers and config/environent.rb are found" do
|
23
23
|
io.stub!(:directory?).with('app').and_return(true)
|
24
24
|
io.stub!(:directory?).with('app/controllers').and_return(true)
|
25
|
-
io.stub!(:file_exists?).with('config/
|
25
|
+
io.stub!(:file_exists?).with('config/environment.rb').and_return(true)
|
26
26
|
|
27
27
|
subject.should be_detected
|
28
28
|
end
|
@@ -35,4 +35,21 @@ describe Webbynode::Engines::Rails do
|
|
35
35
|
subject.should_not be_detected
|
36
36
|
end
|
37
37
|
end
|
38
|
+
|
39
|
+
describe '#prepare' do
|
40
|
+
it "adds a rails_adapter setting when mysql2 is used on the database.yml" do
|
41
|
+
io.should_receive(:read_file).with("config/database.yml").and_return("mysql2")
|
42
|
+
io.should_receive(:add_setting).with('rails_adapter', 'mysql2')
|
43
|
+
|
44
|
+
subject.prepare
|
45
|
+
end
|
46
|
+
|
47
|
+
it "doesn't add a rails_adapter otherwise" do
|
48
|
+
io.should_receive(:read_file).with("config/database.yml").and_return("mysql")
|
49
|
+
io.should_receive(:add_setting).with('rails_adapter', 'mysql2').never
|
50
|
+
io.should_receive(:remove_setting).with('rails_adapter')
|
51
|
+
|
52
|
+
subject.prepare
|
53
|
+
end
|
54
|
+
end
|
38
55
|
end
|
@@ -80,13 +80,102 @@ describe Webbynode::Server do
|
|
80
80
|
|
81
81
|
it "should upload the local key to the server" do
|
82
82
|
@io.should_receive(:read_file).with("abc").and_return("key_contents")
|
83
|
-
@re.should_receive(:exec).with("grep \"key_contents\" ~/.ssh/authorized_keys || (echo \"key_contents\" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys)")
|
83
|
+
@re.should_receive(:exec).with("bash -c 'grep \"key_contents\" ~/.ssh/authorized_keys || (echo \"key_contents\" >> ~/.ssh/authorized_keys; chmod 644 ~/.ssh/authorized_keys)'")
|
84
84
|
|
85
85
|
@server.add_ssh_key "abc"
|
86
86
|
end
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
+
describe "#application_pushed?" do
|
91
|
+
context "when successful" do
|
92
|
+
it "should check if the application has been pushed" do
|
93
|
+
@pushand.should_receive(:parse_remote_app_name).and_return('test.webbynode.com')
|
94
|
+
@re.should_receive(:exec).with("cd test.webbynode.com")
|
95
|
+
@server.application_pushed?
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context "when unsuccessful" do
|
100
|
+
it "should check if the application has been pushed" do
|
101
|
+
@pushand.should_receive(:parse_remote_app_name).and_return('test.webbynode.com')
|
102
|
+
error_message = "bash: line 0: cd: test.webbynode.com: No such file or directory"
|
103
|
+
@re.should_receive(:exec).with("cd test.webbynode.com").and_return(error_message)
|
104
|
+
error_message.should =~ /No such file or directory/
|
105
|
+
@server.application_pushed?
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
describe "#add_ssh_root_key" do
|
113
|
+
before(:each) do
|
114
|
+
@io = mock("Io")
|
115
|
+
@io.as_null_object
|
116
|
+
|
117
|
+
@re = mock("RemoteExecutor")
|
118
|
+
@re.as_null_object
|
119
|
+
|
120
|
+
@pushand = mock("PushAnd")
|
121
|
+
@pushand.as_null_object
|
122
|
+
|
123
|
+
@server = Webbynode::Server.new("1.2.3.4", "git", 22)
|
124
|
+
@server.should_receive(:io).any_number_of_times.and_return(@io)
|
125
|
+
@server.should_receive(:remote_executor).any_number_of_times.and_return(@re)
|
126
|
+
@server.should_receive(:pushand).any_number_of_times.and_return(@pushand)
|
127
|
+
end
|
128
|
+
|
129
|
+
describe "which local key missing" do
|
130
|
+
context "when unsuccessful" do
|
131
|
+
it "creates a local SSH key with empty passphrase" do
|
132
|
+
@io.should_receive(:file_exists?).with("xyz").and_return(false)
|
133
|
+
@io.should_receive(:create_local_key).with("")
|
134
|
+
|
135
|
+
@server.add_ssh_root_key "xyz"
|
136
|
+
end
|
137
|
+
|
138
|
+
it "creates a local SSH key with the provided passphrase" do
|
139
|
+
@io.should_receive(:file_exists?).with("abc").and_return(false)
|
140
|
+
@io.should_receive(:create_local_key).with("my_passphrase")
|
141
|
+
|
142
|
+
@server.add_ssh_root_key "abc", "my_passphrase"
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
context "when unsuccessful" do
|
147
|
+
it "raises a PermissionError if cannot write the key" do
|
148
|
+
@io.should_receive(:file_exists?).with("xyz").and_return(false)
|
149
|
+
@io.should_receive(:create_local_key).and_raise(Webbynode::PermissionError)
|
150
|
+
|
151
|
+
lambda { @server.add_ssh_root_key "xyz" }.should raise_error(Webbynode::PermissionError)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
describe "with local key present" do
|
157
|
+
context "when successful" do
|
158
|
+
it "doesn't create a local key" do
|
159
|
+
@io.should_receive(:file_exists?).with("xyz").and_return(true)
|
160
|
+
@io.should_receive(:create_local_key).never()
|
161
|
+
|
162
|
+
@server.add_ssh_root_key "xyz"
|
163
|
+
end
|
164
|
+
|
165
|
+
it "creates the SSH folder on the server" do
|
166
|
+
@re.should_receive(:create_folder).with("/root/.ssh")
|
167
|
+
@server.add_ssh_root_key "abc"
|
168
|
+
end
|
169
|
+
|
170
|
+
it "creates the local key to the server" do
|
171
|
+
@io.should_receive(:read_file).with("abc").and_return("key_contents")
|
172
|
+
@re.should_receive(:exec).with("sudo bash -c 'grep \"key_contents\" /root/.ssh/authorized_keys || (echo \"key_contents\" >> /root/.ssh/authorized_keys; chmod 644 /root/.ssh/authorized_keys)'")
|
173
|
+
|
174
|
+
@server.add_ssh_root_key "abc"
|
175
|
+
end
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
90
179
|
describe "#application_pushed?" do
|
91
180
|
context "when successful" do
|
92
181
|
it "should check if the application has been pushed" do
|
data/webbynode.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{webbynode}
|
5
|
-
s.version = "1.0.4"
|
5
|
+
s.version = "1.0.4.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Felipe Coury"]
|
9
|
-
s.date = %q{2011-02-
|
9
|
+
s.date = %q{2011-02-26}
|
10
10
|
s.description = %q{Webbynode Deployment Gem}
|
11
11
|
s.email = %q{felipe@webbynode.com}
|
12
12
|
s.executables = ["webbynode", "wn"]
|
13
|
-
s.extra_rdoc_files = ["README.rdoc", "bin/webbynode", "bin/wn", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb"]
|
14
|
-
s.files = ["Manifest", "PostInstall.txt", "README.rdoc", "Rakefile", "assets/webbynode.png", "bin/webbynode", "bin/wn", "changelog.rdoc", "cucumber.yml.old", "inactive_features/bootstrap.feature", "inactive_features/step_definitions/command_steps.rb", "inactive_features/support/env.rb", "inactive_features/support/hooks.rb", "inactive_features/support/io_features.rb", "inactive_features/support/mocha.rb", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb", "spec/fixtures/aliases", "spec/fixtures/api/credentials", "spec/fixtures/api/dns", "spec/fixtures/api/dns_a_record", "spec/fixtures/api/dns_a_record_already_exists", "spec/fixtures/api/dns_a_record_error", "spec/fixtures/api/dns_new_zone", "spec/fixtures/api/webbies", "spec/fixtures/api/webbies_unauthorized", "spec/fixtures/api/webby", "spec/fixtures/commands/tasks/after_push", "spec/fixtures/fixture_helpers", "spec/fixtures/git/config/210.11.13.12", "spec/fixtures/git/config/67.23.79.31", "spec/fixtures/git/config/67.23.79.32", "spec/fixtures/git/config/config", "spec/fixtures/git/config/config_5", "spec/fixtures/git/config/new_210.11.13.12", "spec/fixtures/git/config/new_67.23.79.31", "spec/fixtures/git/config/new_67.23.79.32", "spec/fixtures/git/config/new_config", "spec/fixtures/git/status/clean", "spec/fixtures/git/status/dirty", "spec/fixtures/nodejs/server.js", "spec/fixtures/pushand", "spec/fixtures/settings.py", "spec/fixtures/trial/user_add", "spec/spec_helper.rb", "spec/webbynode/api_client_spec.rb", "spec/webbynode/application_spec.rb", "spec/webbynode/command_spec.rb", "spec/webbynode/commands/add_backup_spec.rb", "spec/webbynode/commands/add_key_spec.rb", "spec/webbynode/commands/addons_spec.rb", "spec/webbynode/commands/alias_spec.rb", "spec/webbynode/commands/apps_spec.rb", "spec/webbynode/commands/change_dns_spec.rb", "spec/webbynode/commands/config_spec.rb", "spec/webbynode/commands/console_spec.rb", "spec/webbynode/commands/delete_spec.rb", "spec/webbynode/commands/help_spec.rb", "spec/webbynode/commands/init_spec.rb", "spec/webbynode/commands/logs_spec.rb", "spec/webbynode/commands/open_spec.rb", "spec/webbynode/commands/push_spec.rb", "spec/webbynode/commands/remote_spec.rb", "spec/webbynode/commands/settings_spec.rb", "spec/webbynode/commands/tasks_spec.rb", "spec/webbynode/commands/user_spec.rb", "spec/webbynode/commands/version_spec.rb", "spec/webbynode/commands/webbies_spec.rb", "spec/webbynode/engines/django_spec.rb", "spec/webbynode/engines/engine_spec.rb", "spec/webbynode/engines/nodejs_spec.rb", "spec/webbynode/engines/php_spec.rb", "spec/webbynode/engines/rack_spec.rb", "spec/webbynode/engines/rails3_spec.rb", "spec/webbynode/engines/rails_spec.rb", "spec/webbynode/engines/wsgi_spec.rb", "spec/webbynode/gemfile_spec.rb", "spec/webbynode/git_spec.rb", "spec/webbynode/io_spec.rb", "spec/webbynode/option_spec.rb", "spec/webbynode/parameter_spec.rb", "spec/webbynode/properties_spec.rb", "spec/webbynode/push_and_spec.rb", "spec/webbynode/remote_executor_spec.rb", "spec/webbynode/server_spec.rb", "spec/webbynode/ssh_spec.rb", "spec/webbynode/trial_spec.rb", "webbynode.gemspec"]
|
13
|
+
s.extra_rdoc_files = ["README.rdoc", "bin/webbynode", "bin/wn", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb"]
|
14
|
+
s.files = ["Gemfile", "Gemfile.lock", "Guardfile", "Manifest", "PostInstall.txt", "README.rdoc", "Rakefile", "assets/webbynode.png", "autotest/discover.rb", "bin/webbynode", "bin/wn", "changelog.rdoc", "cucumber.yml.old", "inactive_features/bootstrap.feature", "inactive_features/step_definitions/command_steps.rb", "inactive_features/support/env.rb", "inactive_features/support/hooks.rb", "inactive_features/support/io_features.rb", "inactive_features/support/mocha.rb", "lib/templates/api_token", "lib/templates/backup", "lib/templates/gitignore", "lib/templates/help", "lib/webbynode.rb", "lib/webbynode/api_client.rb", "lib/webbynode/application.rb", "lib/webbynode/attribute_accessors.rb", "lib/webbynode/command.rb", "lib/webbynode/commands/add_backup.rb", "lib/webbynode/commands/add_key.rb", "lib/webbynode/commands/addons.rb", "lib/webbynode/commands/alias.rb", "lib/webbynode/commands/apps.rb", "lib/webbynode/commands/authorize_root.rb", "lib/webbynode/commands/change_dns.rb", "lib/webbynode/commands/config.rb", "lib/webbynode/commands/console.rb", "lib/webbynode/commands/delete.rb", "lib/webbynode/commands/help.rb", "lib/webbynode/commands/init.rb", "lib/webbynode/commands/logs.rb", "lib/webbynode/commands/open.rb", "lib/webbynode/commands/push.rb", "lib/webbynode/commands/remote.rb", "lib/webbynode/commands/restart.rb", "lib/webbynode/commands/settings.rb", "lib/webbynode/commands/start.rb", "lib/webbynode/commands/stop.rb", "lib/webbynode/commands/tasks.rb", "lib/webbynode/commands/user.rb", "lib/webbynode/commands/version.rb", "lib/webbynode/commands/webbies.rb", "lib/webbynode/engines/all.rb", "lib/webbynode/engines/django.rb", "lib/webbynode/engines/engine.rb", "lib/webbynode/engines/html.rb", "lib/webbynode/engines/nodejs.rb", "lib/webbynode/engines/php.rb", "lib/webbynode/engines/rack.rb", "lib/webbynode/engines/rails.rb", "lib/webbynode/engines/rails3.rb", "lib/webbynode/engines/wsgi.rb", "lib/webbynode/gemfile.rb", "lib/webbynode/git.rb", "lib/webbynode/io.rb", "lib/webbynode/notify.rb", "lib/webbynode/option.rb", "lib/webbynode/parameter.rb", "lib/webbynode/properties.rb", "lib/webbynode/push_and.rb", "lib/webbynode/remote_executor.rb", "lib/webbynode/server.rb", "lib/webbynode/ssh.rb", "lib/webbynode/ssh_keys.rb", "lib/webbynode/trial.rb", "lib/webbynode/updater.rb", "spec/fixtures/aliases", "spec/fixtures/api/credentials", "spec/fixtures/api/dns", "spec/fixtures/api/dns_a_record", "spec/fixtures/api/dns_a_record_already_exists", "spec/fixtures/api/dns_a_record_error", "spec/fixtures/api/dns_new_zone", "spec/fixtures/api/webbies", "spec/fixtures/api/webbies_unauthorized", "spec/fixtures/api/webby", "spec/fixtures/commands/tasks/after_push", "spec/fixtures/fixture_helpers", "spec/fixtures/git/config/210.11.13.12", "spec/fixtures/git/config/67.23.79.31", "spec/fixtures/git/config/67.23.79.32", "spec/fixtures/git/config/config", "spec/fixtures/git/config/config_5", "spec/fixtures/git/config/new_210.11.13.12", "spec/fixtures/git/config/new_67.23.79.31", "spec/fixtures/git/config/new_67.23.79.32", "spec/fixtures/git/config/new_config", "spec/fixtures/git/status/clean", "spec/fixtures/git/status/dirty", "spec/fixtures/nodejs/server.js", "spec/fixtures/pushand", "spec/fixtures/settings.py", "spec/fixtures/trial/user_add", "spec/spec_helper.rb", "spec/webbynode/api_client_spec.rb", "spec/webbynode/application_spec.rb", "spec/webbynode/command_spec.rb", "spec/webbynode/commands/add_backup_spec.rb", "spec/webbynode/commands/add_key_spec.rb", "spec/webbynode/commands/addons_spec.rb", "spec/webbynode/commands/alias_spec.rb", "spec/webbynode/commands/apps_spec.rb", "spec/webbynode/commands/authorize_root_spec.rb", "spec/webbynode/commands/change_dns_spec.rb", "spec/webbynode/commands/config_spec.rb", "spec/webbynode/commands/console_spec.rb", "spec/webbynode/commands/delete_spec.rb", "spec/webbynode/commands/help_spec.rb", "spec/webbynode/commands/init_spec.rb", "spec/webbynode/commands/logs_spec.rb", "spec/webbynode/commands/open_spec.rb", "spec/webbynode/commands/push_spec.rb", "spec/webbynode/commands/remote_spec.rb", "spec/webbynode/commands/settings_spec.rb", "spec/webbynode/commands/tasks_spec.rb", "spec/webbynode/commands/user_spec.rb", "spec/webbynode/commands/version_spec.rb", "spec/webbynode/commands/webbies_spec.rb", "spec/webbynode/engines/django_spec.rb", "spec/webbynode/engines/engine_spec.rb", "spec/webbynode/engines/html_spec.rb", "spec/webbynode/engines/nodejs_spec.rb", "spec/webbynode/engines/php_spec.rb", "spec/webbynode/engines/rack_spec.rb", "spec/webbynode/engines/rails3_spec.rb", "spec/webbynode/engines/rails_spec.rb", "spec/webbynode/engines/wsgi_spec.rb", "spec/webbynode/gemfile_spec.rb", "spec/webbynode/git_spec.rb", "spec/webbynode/io_spec.rb", "spec/webbynode/option_spec.rb", "spec/webbynode/parameter_spec.rb", "spec/webbynode/properties_spec.rb", "spec/webbynode/push_and_spec.rb", "spec/webbynode/remote_executor_spec.rb", "spec/webbynode/server_spec.rb", "spec/webbynode/ssh_spec.rb", "spec/webbynode/trial_spec.rb", "webbynode.gemspec"]
|
15
15
|
s.homepage = %q{http://webbynode.com}
|
16
16
|
s.post_install_message = %q{
|
17
17
|
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webbynode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 75
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 0
|
9
9
|
- 4
|
10
|
-
|
10
|
+
- 2
|
11
|
+
version: 1.0.4.2
|
11
12
|
platform: ruby
|
12
13
|
authors:
|
13
14
|
- Felipe Coury
|
@@ -15,7 +16,7 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2011-02-
|
19
|
+
date: 2011-02-26 00:00:00 -03:00
|
19
20
|
default_executable:
|
20
21
|
dependencies:
|
21
22
|
- !ruby/object:Gem::Dependency
|
@@ -139,6 +140,7 @@ extra_rdoc_files:
|
|
139
140
|
- lib/webbynode/commands/addons.rb
|
140
141
|
- lib/webbynode/commands/alias.rb
|
141
142
|
- lib/webbynode/commands/apps.rb
|
143
|
+
- lib/webbynode/commands/authorize_root.rb
|
142
144
|
- lib/webbynode/commands/change_dns.rb
|
143
145
|
- lib/webbynode/commands/config.rb
|
144
146
|
- lib/webbynode/commands/console.rb
|
@@ -160,6 +162,7 @@ extra_rdoc_files:
|
|
160
162
|
- lib/webbynode/engines/all.rb
|
161
163
|
- lib/webbynode/engines/django.rb
|
162
164
|
- lib/webbynode/engines/engine.rb
|
165
|
+
- lib/webbynode/engines/html.rb
|
163
166
|
- lib/webbynode/engines/nodejs.rb
|
164
167
|
- lib/webbynode/engines/php.rb
|
165
168
|
- lib/webbynode/engines/rack.rb
|
@@ -181,11 +184,15 @@ extra_rdoc_files:
|
|
181
184
|
- lib/webbynode/trial.rb
|
182
185
|
- lib/webbynode/updater.rb
|
183
186
|
files:
|
187
|
+
- Gemfile
|
188
|
+
- Gemfile.lock
|
189
|
+
- Guardfile
|
184
190
|
- Manifest
|
185
191
|
- PostInstall.txt
|
186
192
|
- README.rdoc
|
187
193
|
- Rakefile
|
188
194
|
- assets/webbynode.png
|
195
|
+
- autotest/discover.rb
|
189
196
|
- bin/webbynode
|
190
197
|
- bin/wn
|
191
198
|
- changelog.rdoc
|
@@ -210,6 +217,7 @@ files:
|
|
210
217
|
- lib/webbynode/commands/addons.rb
|
211
218
|
- lib/webbynode/commands/alias.rb
|
212
219
|
- lib/webbynode/commands/apps.rb
|
220
|
+
- lib/webbynode/commands/authorize_root.rb
|
213
221
|
- lib/webbynode/commands/change_dns.rb
|
214
222
|
- lib/webbynode/commands/config.rb
|
215
223
|
- lib/webbynode/commands/console.rb
|
@@ -231,6 +239,7 @@ files:
|
|
231
239
|
- lib/webbynode/engines/all.rb
|
232
240
|
- lib/webbynode/engines/django.rb
|
233
241
|
- lib/webbynode/engines/engine.rb
|
242
|
+
- lib/webbynode/engines/html.rb
|
234
243
|
- lib/webbynode/engines/nodejs.rb
|
235
244
|
- lib/webbynode/engines/php.rb
|
236
245
|
- lib/webbynode/engines/rack.rb
|
@@ -287,6 +296,7 @@ files:
|
|
287
296
|
- spec/webbynode/commands/addons_spec.rb
|
288
297
|
- spec/webbynode/commands/alias_spec.rb
|
289
298
|
- spec/webbynode/commands/apps_spec.rb
|
299
|
+
- spec/webbynode/commands/authorize_root_spec.rb
|
290
300
|
- spec/webbynode/commands/change_dns_spec.rb
|
291
301
|
- spec/webbynode/commands/config_spec.rb
|
292
302
|
- spec/webbynode/commands/console_spec.rb
|
@@ -304,6 +314,7 @@ files:
|
|
304
314
|
- spec/webbynode/commands/webbies_spec.rb
|
305
315
|
- spec/webbynode/engines/django_spec.rb
|
306
316
|
- spec/webbynode/engines/engine_spec.rb
|
317
|
+
- spec/webbynode/engines/html_spec.rb
|
307
318
|
- spec/webbynode/engines/nodejs_spec.rb
|
308
319
|
- spec/webbynode/engines/php_spec.rb
|
309
320
|
- spec/webbynode/engines/rack_spec.rb
|