pulsar 0.0.3 → 0.0.4
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/.gitignore +1 -0
- data/.travis.yml +13 -0
- data/README.md +3 -0
- data/lib/pulsar/commands/cap.rb +18 -4
- data/lib/pulsar/commands/list.rb +10 -2
- data/lib/pulsar/helpers/capistrano.rb +2 -2
- data/lib/pulsar/helpers/clamp.rb +44 -8
- data/lib/pulsar/version.rb +1 -1
- data/lib/pulsar.rb +2 -1
- data/pulsar.gemspec +1 -0
- data/spec/pulsar/commands/cap_spec.rb +52 -0
- data/spec/pulsar/commands/list_spec.rb +36 -0
- data/spec/pulsar/commands/main_spec.rb +33 -0
- data/spec/pulsar/helpers/clamp_spec.rb +11 -0
- data/spec/spec_helper.rb +13 -21
- data/spec/support/dummy_conf/Gemfile +4 -0
- data/spec/support/dummy_conf/apps/base.rb +44 -0
- data/spec/support/dummy_conf/apps/dummy_app/defaults.rb +5 -0
- data/spec/support/dummy_conf/apps/dummy_app/production.rb +3 -0
- data/spec/support/dummy_conf/apps/dummy_app/recipes/.gitkeep +0 -0
- data/spec/support/dummy_conf/apps/dummy_app/staging.rb +3 -0
- data/spec/support/dummy_conf/recipes/generic/recipe.rb +3 -0
- data/spec/support/modules/helpers.rb +25 -0
- data/spec/support/modules/output_capture.rb +21 -0
- data/spec/support/tmp/.gitkeep +0 -0
- metadata +49 -6
- data/spec/pulsar/commands_spec.rb +0 -18
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# Pulsar
|
2
2
|
|
3
|
+
[](http://travis-ci.org/nebulab/pulsar)
|
4
|
+
[](https://codeclimate.com/github/nebulab/pulsar)
|
5
|
+
|
3
6
|
NebuLab's central capistrano deploy resource.
|
4
7
|
|
5
8
|
|
data/lib/pulsar/commands/cap.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
module Pulsar
|
2
2
|
class CapCommand < MainCommand
|
3
3
|
option [ "-k", "--keep-capfile" ], :flag,
|
4
|
-
"don't remove the generated capfile in the
|
4
|
+
"don't remove the generated capfile in the TMP DIR directory",
|
5
5
|
:default => false
|
6
6
|
|
7
|
+
option [ "-r", "--keep-repo" ], :flag,
|
8
|
+
"don't remove the downloaded configuration repository from the TMP DIR directory",
|
9
|
+
:default => false
|
10
|
+
|
7
11
|
option [ "-l", "--log-level" ], "LOG LEVEL",
|
8
12
|
"how much output will Capistrano print out. Can be any of: important, info, debug",
|
9
13
|
:default => "important"
|
@@ -16,6 +20,14 @@ module Pulsar
|
|
16
20
|
"specify a branch for the configuration repository",
|
17
21
|
:default => "master"
|
18
22
|
|
23
|
+
option [ "-d", "--tmp-dir" ], "TMP DIR",
|
24
|
+
"a directory where to put the configuration repo to build capfile with",
|
25
|
+
:default => "/tmp/pulsar"
|
26
|
+
|
27
|
+
option [ "-s", "--skip-cap-run" ], :flag,
|
28
|
+
"do everything pulsar does (build a Capfile) but don't run the cap command",
|
29
|
+
:default => false
|
30
|
+
|
19
31
|
parameter "APPLICATION", "the application which you would like to deploy"
|
20
32
|
parameter "ENVIRONMENT", "the environment on which you would like to deploy" do |env|
|
21
33
|
%w(production staging development).include?(env) ? env : raise(ArgumentError)
|
@@ -31,11 +43,13 @@ module Pulsar
|
|
31
43
|
create_capfile
|
32
44
|
build_capfile(target)
|
33
45
|
|
34
|
-
|
35
|
-
|
46
|
+
unless skip_cap_run?
|
47
|
+
cap_args = [tasks_list].flatten.join(" ")
|
48
|
+
run_capistrano(cap_args)
|
49
|
+
end
|
36
50
|
|
37
51
|
remove_capfile unless keep_capfile?
|
38
|
-
remove_repo
|
52
|
+
remove_repo unless keep_repo?
|
39
53
|
end
|
40
54
|
end
|
41
55
|
end
|
data/lib/pulsar/commands/list.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
module Pulsar
|
2
2
|
class ListCommand < MainCommand
|
3
3
|
option [ "-k", "--keep-capfile" ], :flag,
|
4
|
-
"don't remove the generated capfile in the
|
4
|
+
"don't remove the generated capfile in the TMP DIR directory",
|
5
5
|
:default => false
|
6
6
|
|
7
|
+
option [ "-r", "--keep-repo" ], :flag,
|
8
|
+
"don't remove the downloaded configuration repository from the TMP DIR directory",
|
9
|
+
:default => false
|
10
|
+
|
7
11
|
option [ "-c", "--conf-repo" ], "REPO URL",
|
8
12
|
"a git repository with deploy configurations, mainly apps and recipes",
|
9
13
|
:required => true
|
@@ -12,6 +16,10 @@ module Pulsar
|
|
12
16
|
"specify a branch for the configuration repository",
|
13
17
|
:default => "master"
|
14
18
|
|
19
|
+
option [ "-d", "--tmp-dir" ], "TMP DIR",
|
20
|
+
"a directory where to put the configuration repo to build capfile with",
|
21
|
+
:default => "/tmp/pulsar"
|
22
|
+
|
15
23
|
def execute
|
16
24
|
Bundler.with_clean_env do
|
17
25
|
fetch_repo
|
@@ -19,7 +27,7 @@ module Pulsar
|
|
19
27
|
list_apps
|
20
28
|
|
21
29
|
remove_capfile unless keep_capfile?
|
22
|
-
remove_repo
|
30
|
+
remove_repo unless keep_repo?
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -12,9 +12,9 @@ module Pulsar
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def method_missing(meth, *args, &block)
|
15
|
-
if File.directory?("#{
|
15
|
+
if File.directory?("#{ENV['CONFIG_PATH']}/recipes/#{meth}")
|
16
16
|
args.each do |arg|
|
17
|
-
@cap_conf.load("#{
|
17
|
+
@cap_conf.load("#{ENV['CONFIG_PATH']}/recipes/#{meth}/#{arg}.rb")
|
18
18
|
end
|
19
19
|
else
|
20
20
|
super
|
data/lib/pulsar/helpers/clamp.rb
CHANGED
@@ -18,17 +18,22 @@ module Pulsar
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def bundle_install
|
21
|
-
|
21
|
+
cd(config_path, :verbose => verbose?) do
|
22
22
|
run_cmd("bundle install --quiet", :verbose => verbose?)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def capfile_path
|
27
|
-
@capfile_name ||= "/
|
27
|
+
@capfile_name ||= "#{tmp_dir}/capfile-#{time_to_deploy}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def cd(path, opts, &block)
|
31
|
+
puts "Directory: #{path.white}".yellow if opts[:verbose]
|
32
|
+
FileUtils.cd(path) { yield }
|
28
33
|
end
|
29
34
|
|
30
35
|
def config_path
|
31
|
-
@configuration_path ||= "/
|
36
|
+
@configuration_path ||= "#{tmp_dir}/conf-repo-#{time_to_deploy}"
|
32
37
|
end
|
33
38
|
|
34
39
|
def create_capfile
|
@@ -36,7 +41,22 @@ module Pulsar
|
|
36
41
|
end
|
37
42
|
|
38
43
|
def fetch_repo
|
39
|
-
|
44
|
+
if conf_repo =~ /\A[a-zA-Z-]+\/[a-zA-Z-]+\Z/
|
45
|
+
fetch_git_repo("git@github.com:#{conf_repo}.git")
|
46
|
+
else
|
47
|
+
fetch_directory_repo(conf_repo)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def fetch_directory_repo(repo)
|
52
|
+
if File.directory?("#{repo}/.git")
|
53
|
+
fetch_git_repo(repo)
|
54
|
+
else
|
55
|
+
run_cmd("cp -rp #{repo} #{config_path}", :verbose => verbose?)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def fetch_git_repo(repo)
|
40
60
|
git_options = "--quiet --depth=1 --branch #{conf_branch}"
|
41
61
|
run_cmd("git clone #{git_options} #{repo} #{config_path}", :verbose => verbose?)
|
42
62
|
end
|
@@ -87,7 +107,7 @@ module Pulsar
|
|
87
107
|
end
|
88
108
|
end
|
89
109
|
|
90
|
-
puts "#{app_name}: #{app_envs.join(', ')}"
|
110
|
+
puts "#{app_name.cyan}: #{app_envs.map(&:magenta).join(', ')}"
|
91
111
|
end
|
92
112
|
end
|
93
113
|
end
|
@@ -101,14 +121,21 @@ module Pulsar
|
|
101
121
|
end
|
102
122
|
|
103
123
|
def run_capistrano(args)
|
104
|
-
|
105
|
-
run_cmd("bundle exec cap --file #{capfile_path} #{args}", :verbose => verbose?)
|
124
|
+
cd(config_path, :verbose => verbose?) do
|
125
|
+
run_cmd("CONFIG_PATH=#{config_path} bundle exec cap --file #{capfile_path} #{args}", :verbose => verbose?)
|
106
126
|
end
|
107
127
|
end
|
108
128
|
|
129
|
+
def rm_rf(path, opts)
|
130
|
+
puts "Remove: #{path.white}".yellow if opts[:verbose]
|
131
|
+
FileUtils.rm_rf(path)
|
132
|
+
end
|
133
|
+
|
109
134
|
def run_cmd(cmd, opts)
|
110
|
-
puts cmd if opts[:verbose]
|
135
|
+
puts "Command: #{cmd.white}".yellow if opts[:verbose]
|
111
136
|
system(cmd)
|
137
|
+
|
138
|
+
raise "Command #{cmd} Failed" if $? != 0
|
112
139
|
end
|
113
140
|
|
114
141
|
def set_log_level
|
@@ -121,6 +148,15 @@ module Pulsar
|
|
121
148
|
|
122
149
|
run_cmd(cmd, :verbose => verbose?)
|
123
150
|
end
|
151
|
+
|
152
|
+
def time_to_deploy
|
153
|
+
@now ||= Time.now.strftime("%Y-%m-%d-%H%M%S-s#{rand(9999)}")
|
154
|
+
end
|
155
|
+
|
156
|
+
def touch(file, opts)
|
157
|
+
puts "Touch: #{file.white}".yellow if opts[:verbose]
|
158
|
+
FileUtils.touch(file)
|
159
|
+
end
|
124
160
|
end
|
125
161
|
end
|
126
162
|
end
|
data/lib/pulsar/version.rb
CHANGED
data/lib/pulsar.rb
CHANGED
data/pulsar.gemspec
CHANGED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Pulsar::CapCommand do
|
4
|
+
let(:pulsar) { Pulsar::CapCommand.new("cap") }
|
5
|
+
|
6
|
+
it "builds a Capfile file in tmp dir" do
|
7
|
+
expect { pulsar.run(full_cap_args + dummy_app) }.to change{ Dir.glob("#{tmp_path}/capfile-*").length }.by(1)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "copies a the repo over to temp directory" do
|
11
|
+
expect { pulsar.run(full_cap_args + %w(--keep-repo) + dummy_app) }.to change{ Dir.glob("#{tmp_path}/conf-repo*").length }.by(1)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "copies a the repo when there is a dir with same name" do
|
15
|
+
system("mkdir #{tmp_path}/conf-repo")
|
16
|
+
expect { pulsar.run(full_cap_args + %w(--keep-repo) + dummy_app) }.to change{ Dir.glob("#{tmp_path}/conf-repo*").length }.by(1)
|
17
|
+
end
|
18
|
+
|
19
|
+
context "--conf-repo option" do
|
20
|
+
it "is required" do
|
21
|
+
expect { pulsar.parse([""]) }.to raise_error(Clamp::UsageError)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "supports directories" do
|
25
|
+
expect { pulsar.run(full_cap_args + dummy_app) }.not_to raise_error(Errno::ENOENT)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "--tmp-dir option" do
|
30
|
+
it "is supported" do
|
31
|
+
expect { pulsar.parse(base_args + %w(--tmp-dir dummy_tmp) + dummy_app) }.to_not raise_error(Clamp::UsageError)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "--keep-capfile option" do
|
36
|
+
it "is supported" do
|
37
|
+
expect { pulsar.parse(base_args + %w(--keep-capfile) + dummy_app) }.to_not raise_error(Clamp::UsageError)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context "--skip-cap-run option" do
|
42
|
+
it "is supported" do
|
43
|
+
expect { pulsar.parse(base_args + %w(--skip-cap-run) + dummy_app) }.to_not raise_error(Clamp::UsageError)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context "--keep-repo option" do
|
48
|
+
it "is supported" do
|
49
|
+
expect { pulsar.parse(base_args + %w(--keep-repo) + dummy_app) }.to_not raise_error(Clamp::UsageError)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Pulsar::ListCommand do
|
4
|
+
let(:pulsar) { Pulsar::ListCommand.new("list") }
|
5
|
+
|
6
|
+
it "copies a the repo over to temp directory" do
|
7
|
+
expect { pulsar.run(full_list_args + %w(--keep-repo)) }.to change{ Dir.glob("#{tmp_path}/conf-repo*").length }.by(1)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "copies a the repo when there is a dir with same name" do
|
11
|
+
system("mkdir #{tmp_path}/conf-repo")
|
12
|
+
expect { pulsar.run(full_list_args + %w(--keep-repo)) }.to change{ Dir.glob("#{tmp_path}/conf-repo*").length }.by(1)
|
13
|
+
end
|
14
|
+
|
15
|
+
context "--conf-repo option" do
|
16
|
+
it "is required" do
|
17
|
+
expect { pulsar.parse([""]) }.to raise_error(Clamp::UsageError)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "supports directories" do
|
21
|
+
expect { pulsar.run(full_list_args) }.not_to raise_error(Errno::ENOENT)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "--tmp-dir option" do
|
26
|
+
it "is supported" do
|
27
|
+
expect { pulsar.parse(base_args + %w(--tmp-dir dummy_tmp)) }.to_not raise_error(Clamp::UsageError)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "--keep-capfile option" do
|
32
|
+
it "is supported" do
|
33
|
+
expect { pulsar.parse(base_args + %w(--keep-capfile)) }.to_not raise_error(Clamp::UsageError)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Pulsar::MainCommand do
|
4
|
+
let(:pulsar) { Pulsar::MainCommand.new("") }
|
5
|
+
|
6
|
+
context "--version option" do
|
7
|
+
before do
|
8
|
+
begin
|
9
|
+
pulsar.parse(["--version"])
|
10
|
+
rescue SystemExit => e
|
11
|
+
@system_exit = e
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
it "shows version" do
|
16
|
+
stdout.should include(Pulsar::VERSION)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "exits with a zero status" do
|
20
|
+
@system_exit.should_not be_nil
|
21
|
+
@system_exit.status.should == 0
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context "subcommands" do
|
26
|
+
it "should be cap and list" do
|
27
|
+
help = pulsar.help
|
28
|
+
help.should =~ /Subcommands:/
|
29
|
+
help.should =~ /cap/
|
30
|
+
help.should =~ /list/
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,29 +1,21 @@
|
|
1
1
|
require "rspec"
|
2
|
+
require "stringio"
|
3
|
+
require "fileutils"
|
2
4
|
require "pulsar"
|
3
|
-
require
|
5
|
+
require "pulsar/commands/main"
|
6
|
+
|
7
|
+
#
|
8
|
+
# Require all helper modules
|
9
|
+
#
|
10
|
+
Dir[File.join(File.dirname(__FILE__), 'support/modules/**/*.rb')].each { |f| require f }
|
4
11
|
|
5
12
|
RSpec.configure do |config|
|
6
13
|
config.mock_with :rr
|
7
|
-
end
|
8
14
|
|
9
|
-
|
10
|
-
|
11
|
-
target.before do
|
12
|
-
$stdout = @out = StringIO.new
|
13
|
-
$stderr = @err = StringIO.new
|
14
|
-
end
|
15
|
-
|
16
|
-
target.after do
|
17
|
-
$stdout = STDOUT
|
18
|
-
$stderr = STDERR
|
19
|
-
end
|
20
|
-
end
|
15
|
+
config.include Helpers
|
16
|
+
config.include OutputCapture
|
21
17
|
|
22
|
-
|
23
|
-
|
18
|
+
config.after(:suite) do
|
19
|
+
FileUtils.rm_r(Dir.glob("#{File.dirname(__FILE__)}/support/tmp/*"))
|
24
20
|
end
|
25
|
-
|
26
|
-
def stderr
|
27
|
-
@err.string
|
28
|
-
end
|
29
|
-
end
|
21
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#
|
2
|
+
# Require and extend with additional modules
|
3
|
+
#
|
4
|
+
require 'pulsar'
|
5
|
+
|
6
|
+
extend Pulsar::Helpers::Capistrano
|
7
|
+
|
8
|
+
#
|
9
|
+
# Load deploy capistrano recipe
|
10
|
+
#
|
11
|
+
load 'deploy'
|
12
|
+
|
13
|
+
#
|
14
|
+
# Configure libraries/recipes from Gemfile
|
15
|
+
#
|
16
|
+
require 'bundler/capistrano'
|
17
|
+
|
18
|
+
#
|
19
|
+
# Load default recipes
|
20
|
+
#
|
21
|
+
load_recipes do
|
22
|
+
generic :notify, :cleanup, :rake
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
# Put here shared configuration that should be by default
|
27
|
+
#
|
28
|
+
set :scm, :git
|
29
|
+
|
30
|
+
set :ssh_options, { :forward_agent => true }
|
31
|
+
|
32
|
+
set :default_run_options, { :pty => true }
|
33
|
+
|
34
|
+
set :deploy_to, defer { "/var/www/#{application}" }
|
35
|
+
|
36
|
+
set :deploy_via, :remote_cache
|
37
|
+
|
38
|
+
set :user, "www-data"
|
39
|
+
|
40
|
+
set :use_sudo, false
|
41
|
+
|
42
|
+
set :rake, "bundle exec rake"
|
43
|
+
|
44
|
+
set :rails_env, defer { "#{stage}" }
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Helpers
|
2
|
+
def base_args
|
3
|
+
[ "--conf-repo", dummy_conf_path ]
|
4
|
+
end
|
5
|
+
|
6
|
+
def full_cap_args
|
7
|
+
base_args + [ "--tmp-dir", tmp_path, "--keep-capfile", "--skip-cap-run" ]
|
8
|
+
end
|
9
|
+
|
10
|
+
def full_list_args
|
11
|
+
base_args + [ "--tmp-dir", tmp_path, "--keep-capfile" ]
|
12
|
+
end
|
13
|
+
|
14
|
+
def dummy_conf_path
|
15
|
+
File.join(File.dirname(__FILE__), "..", "dummy_conf")
|
16
|
+
end
|
17
|
+
|
18
|
+
def tmp_path
|
19
|
+
File.join(File.dirname(__FILE__), "..", "tmp")
|
20
|
+
end
|
21
|
+
|
22
|
+
def dummy_app
|
23
|
+
[ "dummy_app", "production" ]
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module OutputCapture
|
2
|
+
def self.included(target)
|
3
|
+
target.before do
|
4
|
+
$stdout = @out = StringIO.new
|
5
|
+
$stderr = @err = StringIO.new
|
6
|
+
end
|
7
|
+
|
8
|
+
target.after do
|
9
|
+
$stdout = STDOUT
|
10
|
+
$stderr = STDERR
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def stdout
|
15
|
+
@out.string
|
16
|
+
end
|
17
|
+
|
18
|
+
def stderr
|
19
|
+
@err.string
|
20
|
+
end
|
21
|
+
end
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pulsar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2013-03-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: clamp
|
@@ -44,6 +44,22 @@ dependencies:
|
|
44
44
|
- - ~>
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1.2'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: colored
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.2'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '1.2'
|
47
63
|
- !ruby/object:Gem::Dependency
|
48
64
|
name: rake
|
49
65
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,6 +119,7 @@ files:
|
|
103
119
|
- .gitignore
|
104
120
|
- .rspec
|
105
121
|
- .rvmrc
|
122
|
+
- .travis.yml
|
106
123
|
- Gemfile
|
107
124
|
- LICENSE.txt
|
108
125
|
- README.md
|
@@ -118,8 +135,21 @@ files:
|
|
118
135
|
- lib/pulsar/tasks/.gitkeep
|
119
136
|
- lib/pulsar/version.rb
|
120
137
|
- pulsar.gemspec
|
121
|
-
- spec/pulsar/
|
138
|
+
- spec/pulsar/commands/cap_spec.rb
|
139
|
+
- spec/pulsar/commands/list_spec.rb
|
140
|
+
- spec/pulsar/commands/main_spec.rb
|
141
|
+
- spec/pulsar/helpers/clamp_spec.rb
|
122
142
|
- spec/spec_helper.rb
|
143
|
+
- spec/support/dummy_conf/Gemfile
|
144
|
+
- spec/support/dummy_conf/apps/base.rb
|
145
|
+
- spec/support/dummy_conf/apps/dummy_app/defaults.rb
|
146
|
+
- spec/support/dummy_conf/apps/dummy_app/production.rb
|
147
|
+
- spec/support/dummy_conf/apps/dummy_app/recipes/.gitkeep
|
148
|
+
- spec/support/dummy_conf/apps/dummy_app/staging.rb
|
149
|
+
- spec/support/dummy_conf/recipes/generic/recipe.rb
|
150
|
+
- spec/support/modules/helpers.rb
|
151
|
+
- spec/support/modules/output_capture.rb
|
152
|
+
- spec/support/tmp/.gitkeep
|
123
153
|
homepage: https://github.com/nebulab/pulsar
|
124
154
|
licenses: []
|
125
155
|
post_install_message:
|
@@ -134,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
164
|
version: '0'
|
135
165
|
segments:
|
136
166
|
- 0
|
137
|
-
hash:
|
167
|
+
hash: 1088010047728925566
|
138
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
169
|
none: false
|
140
170
|
requirements:
|
@@ -143,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
173
|
version: '0'
|
144
174
|
segments:
|
145
175
|
- 0
|
146
|
-
hash:
|
176
|
+
hash: 1088010047728925566
|
147
177
|
requirements: []
|
148
178
|
rubyforge_project:
|
149
179
|
rubygems_version: 1.8.24
|
@@ -153,5 +183,18 @@ summary: A simple gem that parses capistrano configuration froma another (privat
|
|
153
183
|
repository providing a simple solution to managing multiple systems without installing
|
154
184
|
capistrano configurations in each app.
|
155
185
|
test_files:
|
156
|
-
- spec/pulsar/
|
186
|
+
- spec/pulsar/commands/cap_spec.rb
|
187
|
+
- spec/pulsar/commands/list_spec.rb
|
188
|
+
- spec/pulsar/commands/main_spec.rb
|
189
|
+
- spec/pulsar/helpers/clamp_spec.rb
|
157
190
|
- spec/spec_helper.rb
|
191
|
+
- spec/support/dummy_conf/Gemfile
|
192
|
+
- spec/support/dummy_conf/apps/base.rb
|
193
|
+
- spec/support/dummy_conf/apps/dummy_app/defaults.rb
|
194
|
+
- spec/support/dummy_conf/apps/dummy_app/production.rb
|
195
|
+
- spec/support/dummy_conf/apps/dummy_app/recipes/.gitkeep
|
196
|
+
- spec/support/dummy_conf/apps/dummy_app/staging.rb
|
197
|
+
- spec/support/dummy_conf/recipes/generic/recipe.rb
|
198
|
+
- spec/support/modules/helpers.rb
|
199
|
+
- spec/support/modules/output_capture.rb
|
200
|
+
- spec/support/tmp/.gitkeep
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Pulsar::MainCommand do
|
4
|
-
include OutputCapture
|
5
|
-
|
6
|
-
context "with required arguments" do
|
7
|
-
before do
|
8
|
-
@pulsar = Pulsar::CapCommand.new("cap")
|
9
|
-
@pulsar.parse(%w(-c repo.com project development))
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should set variables correctly" do
|
13
|
-
@pulsar.conf_repo.should == "repo.com"
|
14
|
-
@pulsar.application.should == "project"
|
15
|
-
@pulsar.environment.should == "development"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|