pulsar 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://secure.travis-ci.org/nebulab/pulsar.png?branch=master)](http://travis-ci.org/nebulab/pulsar)
|
4
|
+
[![Code Climate](https://codeclimate.com/badge.png)](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
|