guard-rake-vagrant 0.0.2 → 0.0.3
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.
- checksums.yaml +15 -0
- data/Gemfile +10 -2
- data/README.md +97 -64
- data/guard-rake-vagrant.gemspec +1 -0
- data/lib/guard/rake.rb +1 -0
- data/lib/guard/rake/vagrant.rb +63 -63
- data/lib/guard/rake/version.rb +1 -1
- data/spec/spec_helper.rb +6 -0
- data/spec/unit/guard/rake_spec.rb +68 -0
- metadata +24 -12
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YjdlNDEzMmY1ZGIyZGYxZmVmNTMyMDZmYjc1YTAyZDRkY2I5YmZhNg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OTA1NGU2M2Y2YmM3ZDgwNDg5Nzk4MGQzN2U2ZDRkNTA1OWMxODJhYw==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NTMzOTRkYzdjZTdiMDRkNDA3NDVjMDYwYmViZjNlM2E5ZTlmZjIzZjgzYWIz
|
10
|
+
ZmFiZGU1ZmIyYmQ2NTlmYjYzYmM1NWNhYjNhYzA0MTcyYjBkZDljZTY2NGVk
|
11
|
+
YjhmN2Q4OTk2NmI4ZDA2Mzc0OWMzMzIxNWFhMWVjODA3MzE4YTM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NjVjODYwODg0NTNmMmZlMzYzMzcyMmE4NGRmNzJjNjE1ZDVjODc0OGQ4NTZj
|
14
|
+
MjRkYTBhZDM5OWFmYzU0ZDZjMThhYWJjZjkyZjIwNzMwMTE2Nzg3NmJmMDg0
|
15
|
+
ZmUxYzcxOGFjOGM2ZmRmMzA2N2ZlMTk3OGYyN2E2YzY5NTlkZmQ=
|
data/Gemfile
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem 'rake'
|
4
|
-
|
5
3
|
gemspec
|
4
|
+
|
5
|
+
group :test do
|
6
|
+
gem 'rake'
|
7
|
+
gem 'guard'
|
8
|
+
gem 'guard-rspec'
|
9
|
+
gem "ruby_gntp"
|
10
|
+
gem 'rb-inotify', :require => false
|
11
|
+
gem 'rb-fsevent', :require => false
|
12
|
+
gem 'rb-fchange', :require => false
|
13
|
+
end
|
data/README.md
CHANGED
@@ -1,64 +1,97 @@
|
|
1
|
-
guard-rake-vagrant
|
2
|
-
==================
|
3
|
-
|
4
|
-
Guard Plugin that uses Rake and Vagrant to converge
|
5
|
-
|
6
|
-
Software & Tools
|
7
|
-
------------
|
8
|
-
|
9
|
-
This gem depends on the well installation of the following software & tools:
|
10
|
-
* Vagrant - Recomended version 1.2.2 - http://downloads.vagrantup.com/tags/v1.2.2
|
11
|
-
* Vagrant Plugins
|
12
|
-
* vagrant-berkshelf (1.3.7)
|
13
|
-
* vagrant-windows (1.5.1)
|
14
|
-
```
|
15
|
-
# vagrant plugin install vagrant-berkshelf
|
16
|
-
# vagrant plugin install vagrant-windows
|
17
|
-
```
|
18
|
-
|
19
|
-
Installation
|
20
|
-
------------
|
21
|
-
|
22
|
-
Add this line to your
|
23
|
-
|
24
|
-
gem 'guard-rake-vagrant'
|
25
|
-
|
26
|
-
And then execute:
|
27
|
-
|
28
|
-
$ bundle install
|
29
|
-
|
30
|
-
Or install it yourself as:
|
31
|
-
|
32
|
-
$ gem install guard-rake-vagrant
|
33
|
-
|
34
|
-
Setup
|
35
|
-
------------
|
36
|
-
|
37
|
-
Create a Guardfile:
|
38
|
-
```
|
39
|
-
guard :rake, :task => 'doit' do
|
40
|
-
watch(%r{^test/.+_spec\.rb$})
|
41
|
-
end
|
42
|
-
```
|
43
|
-
|
44
|
-
Create a Rakefile:
|
45
|
-
```
|
46
|
-
require 'rake'
|
47
|
-
require 'rspec/core/rake_task'
|
48
|
-
|
49
|
-
RSpec::Core::RakeTask.new(:doit) do |t|
|
50
|
-
# actions (may reference t)
|
51
|
-
end
|
52
|
-
|
53
|
-
desc "This is the description of my :doit task "
|
54
|
-
```
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
1
|
+
guard-rake-vagrant
|
2
|
+
==================
|
3
|
+
|
4
|
+
Guard Plugin that uses Rake and Vagrant to converge Chef Cookbooks and run integration tests.
|
5
|
+
|
6
|
+
Software & Tools
|
7
|
+
------------
|
8
|
+
|
9
|
+
This gem depends on the well installation of the following software & tools:
|
10
|
+
* Vagrant - Recomended version 1.2.2 - http://downloads.vagrantup.com/tags/v1.2.2
|
11
|
+
* Vagrant Plugins
|
12
|
+
* vagrant-berkshelf (1.3.7)
|
13
|
+
* vagrant-windows (1.5.1)
|
14
|
+
```
|
15
|
+
# vagrant plugin install vagrant-berkshelf
|
16
|
+
# vagrant plugin install vagrant-windows
|
17
|
+
```
|
18
|
+
|
19
|
+
Installation
|
20
|
+
------------
|
21
|
+
|
22
|
+
Add this line to your Cookbook Gemfile:
|
23
|
+
|
24
|
+
gem 'guard-rake-vagrant'
|
25
|
+
|
26
|
+
And then execute:
|
27
|
+
|
28
|
+
$ bundle install
|
29
|
+
|
30
|
+
Or install it yourself as:
|
31
|
+
|
32
|
+
$ gem install guard-rake-vagrant
|
33
|
+
|
34
|
+
Setup
|
35
|
+
------------
|
36
|
+
|
37
|
+
Create a Guardfile:
|
38
|
+
```
|
39
|
+
guard :rake, :task => 'doit' do
|
40
|
+
watch(%r{^test/.+_spec\.rb$})
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
Create a Rakefile:
|
45
|
+
```
|
46
|
+
require 'rake'
|
47
|
+
require 'rspec/core/rake_task'
|
48
|
+
|
49
|
+
RSpec::Core::RakeTask.new(:doit) do |t|
|
50
|
+
# actions (may reference t)
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "This is the description of my :doit task "
|
54
|
+
```
|
55
|
+
|
56
|
+
Create a Vagrantfile:
|
57
|
+
```
|
58
|
+
box = "Windows2008R2"
|
59
|
+
box_url = "Windows2008R2.box"
|
60
|
+
cookbook_name = "my_cookbook_name"
|
61
|
+
|
62
|
+
Vagrant.configure("2") do |config|
|
63
|
+
config.vm.define cookbook_name do |config|
|
64
|
+
config.vm.box = box
|
65
|
+
config.vm.box_url = box_url
|
66
|
+
|
67
|
+
# Windows Plugin if platform?("windows")
|
68
|
+
config.vm.guest = :windows
|
69
|
+
|
70
|
+
# FW ports if platform?("windows")
|
71
|
+
config.vm.network :forwarded_port, { :guest=>3389, :host=>3389, :id=>"rdp", :auto_correct=>true }
|
72
|
+
config.vm.network :forwarded_port, { :guest=>5985, :host=>5985, :id=>"winrm", :auto_correct=>true }
|
73
|
+
|
74
|
+
# Berkshelf Plugin
|
75
|
+
config.berkshelf.enabled = true
|
76
|
+
|
77
|
+
config.vm.provider :virtualbox do |p|
|
78
|
+
p.customize ["modifyvm", :id, "--memory", "512"]
|
79
|
+
end
|
80
|
+
|
81
|
+
config.vm.provision :chef_solo do |chef|
|
82
|
+
chef.log_level = :auto
|
83
|
+
chef.run_list = ["recipe[" + cookbook_name + "]"]
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
```
|
88
|
+
|
89
|
+
And then execute:
|
90
|
+
|
91
|
+
$ bundle exec guard
|
92
|
+
|
93
|
+
|
94
|
+
Authors
|
95
|
+
------------
|
96
|
+
Created and maintained by [Salim Afiune](https://github.com/afiune) (salim@afiunemaya.com.mx) and the community.
|
97
|
+
|
data/guard-rake-vagrant.gemspec
CHANGED
data/lib/guard/rake.rb
CHANGED
data/lib/guard/rake/vagrant.rb
CHANGED
@@ -1,64 +1,64 @@
|
|
1
|
-
require 'guard'
|
2
|
-
require 'guard/guard'
|
3
|
-
require "mixlib/shellout"
|
4
|
-
|
5
|
-
module Guard
|
6
|
-
class Rake
|
7
|
-
class Vagrant
|
8
|
-
class << self
|
9
|
-
def up
|
10
|
-
UI.info "Guard::Rake::Vagrant box is starting"
|
11
|
-
cmd = Mixlib::ShellOut.new("vagrant up", :timeout => 10800)
|
12
|
-
cmd.live_stream = STDOUT
|
13
|
-
cmd.run_command
|
14
|
-
|
15
|
-
begin
|
16
|
-
cmd.error!
|
17
|
-
Notifier.notify('Vagrant box created', :title => 'guard-rake-vagrant', :image => :success)
|
18
|
-
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
19
|
-
Notifier.notify('Vagrant box create failed', :title => 'guard-rake-vagrant', :image => :failed)
|
20
|
-
|
21
|
-
throw :task_has_failed
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def destroy
|
26
|
-
|
27
|
-
cmd = Mixlib::ShellOut.new("vagrant destroy -f")
|
28
|
-
cmd.live_stream = STDOUT
|
29
|
-
cmd.run_command
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def provision
|
42
|
-
UI.info "Guard::Rake::Vagrant box is provisioning"
|
43
|
-
cmd = Mixlib::ShellOut.new("vagrant provision", :timeout => 10800)
|
44
|
-
cmd.live_stream = STDOUT
|
45
|
-
cmd.run_command
|
46
|
-
|
47
|
-
begin
|
48
|
-
cmd.error!
|
49
|
-
Notifier.notify('Vagrant box provisioned', :title => 'guard-vagrant', :image => :success)
|
50
|
-
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
51
|
-
Notifier.notify('Vagrant box provision failed', :title => 'guard-vagrant', :image => :failed)
|
52
|
-
|
53
|
-
throw :task_has_failed
|
54
|
-
end
|
55
|
-
|
56
|
-
if cmd.stdout =~ /VM is not currently running/
|
57
|
-
UI.info "Guard::Rake::Vagrant box is not running"
|
58
|
-
self.up
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
1
|
+
require 'guard'
|
2
|
+
require 'guard/guard'
|
3
|
+
require "mixlib/shellout"
|
4
|
+
|
5
|
+
module Guard
|
6
|
+
class Rake
|
7
|
+
class Vagrant
|
8
|
+
class << self
|
9
|
+
def up
|
10
|
+
UI.info "Guard::Rake::Vagrant box is starting"
|
11
|
+
cmd = Mixlib::ShellOut.new("vagrant up", :timeout => 10800)
|
12
|
+
cmd.live_stream = STDOUT
|
13
|
+
cmd.run_command
|
14
|
+
|
15
|
+
begin
|
16
|
+
cmd.error!
|
17
|
+
Notifier.notify('Vagrant box created', :title => 'guard-rake-vagrant', :image => :success)
|
18
|
+
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
19
|
+
Notifier.notify('Vagrant box create failed', :title => 'guard-rake-vagrant', :image => :failed)
|
20
|
+
UI.info("Vagrant box failed with #{e.to_s}")
|
21
|
+
throw :task_has_failed
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def destroy
|
26
|
+
UI.info("Guard::Rake::Vagrant box is stopping")
|
27
|
+
cmd = Mixlib::ShellOut.new("vagrant destroy -f", :timeout => 300)
|
28
|
+
cmd.live_stream = STDOUT
|
29
|
+
cmd.run_command
|
30
|
+
|
31
|
+
begin
|
32
|
+
cmd.error!
|
33
|
+
Notifier.notify('Vagrant box destroyed', :title => 'guard-rake-vagrant', :image => :success)
|
34
|
+
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
35
|
+
Notifier.notify('Vagrant box destroy failed', :title => 'guard-rake-vagrant', :image => :failed)
|
36
|
+
UI.info("Vagrant box failed #{e.to_s}")
|
37
|
+
throw :task_has_failed
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def provision
|
42
|
+
UI.info "Guard::Rake::Vagrant box is provisioning"
|
43
|
+
cmd = Mixlib::ShellOut.new("vagrant provision", :timeout => 10800)
|
44
|
+
cmd.live_stream = STDOUT
|
45
|
+
cmd.run_command
|
46
|
+
|
47
|
+
begin
|
48
|
+
cmd.error!
|
49
|
+
Notifier.notify('Vagrant box provisioned', :title => 'guard-vagrant', :image => :success)
|
50
|
+
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
51
|
+
Notifier.notify('Vagrant box provision failed', :title => 'guard-vagrant', :image => :failed)
|
52
|
+
UI.info("Vagrant box provision failed with #{e.to_s}")
|
53
|
+
throw :task_has_failed
|
54
|
+
end
|
55
|
+
|
56
|
+
if cmd.stdout =~ /VM is not currently running/
|
57
|
+
UI.info "Guard::Rake::Vagrant box is not running"
|
58
|
+
self.up
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
64
|
end
|
data/lib/guard/rake/version.rb
CHANGED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'guard/rake'
|
3
|
+
|
4
|
+
describe "Guard::Rake" do
|
5
|
+
let(:rake) do
|
6
|
+
Guard::Rake.new
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "start" do
|
10
|
+
before(:each) do
|
11
|
+
@shellout = double('shellout')
|
12
|
+
@shellout.stub(:live_stream=).with(STDOUT)
|
13
|
+
@shellout.stub(:run_command)
|
14
|
+
@shellout.stub(:error!)
|
15
|
+
Guard::UI.stub(:info).with('Guard::Rake::Vagrant box is starting')
|
16
|
+
Guard::UI.stub(:info).with('Starting guard-rake-vagrant')
|
17
|
+
Mixlib::ShellOut.stub(:new).with("vagrant up").and_return(@shellout)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "runs vagrant up" do
|
21
|
+
Mixlib::ShellOut.should_receive(:new).with("vagrant up").and_return(@shellout)
|
22
|
+
Guard::UI.should_receive(:info).with('Guard::Rake::Vagrant box is starting')
|
23
|
+
Guard::Notifier.should_receive(:notify).with('Vagrant box created', :title => 'guard-rake-vagrant', :image => :success)
|
24
|
+
rake.start
|
25
|
+
end
|
26
|
+
|
27
|
+
it "notifies on failure" do
|
28
|
+
@shellout.should_receive(:error!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
|
29
|
+
Guard::UI.should_receive(:info).with('Guard::Rake::Vagrant box is starting')
|
30
|
+
Guard::Notifier.should_receive(:notify).with('Vagrant box create failed', :title => 'guard-rake-vagrant', :image => :failed)
|
31
|
+
Guard::UI.should_receive(:info).with('Vagrant box failed with Mixlib::ShellOut::ShellCommandFailed')
|
32
|
+
expect { rake.start }.to throw_symbol(:task_has_failed)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
describe "reload" do
|
36
|
+
it "calls stop and start" do
|
37
|
+
rake.should_receive(:stop)
|
38
|
+
rake.should_receive(:start)
|
39
|
+
rake.reload
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "stop" do
|
44
|
+
before(:each) do
|
45
|
+
@shellout = double('shellout')
|
46
|
+
@shellout.stub(:live_stream=).with(STDOUT)
|
47
|
+
@shellout.stub(:run_command)
|
48
|
+
@shellout.stub(:error!)
|
49
|
+
Guard::UI.stub(:info).with('Guard::Rake::Vagrant box is stopping')
|
50
|
+
Guard::UI.stub(:info).with('Stopping guard-rake-vagrant')
|
51
|
+
Mixlib::ShellOut.stub(:new).with("vagrant destroy -f").and_return(@shellout)
|
52
|
+
end
|
53
|
+
it "runs vagrant destroy -f" do
|
54
|
+
Mixlib::ShellOut.should_receive(:new).with("vagrant destroy -f").and_return(@shellout)
|
55
|
+
Guard::UI.should_receive(:info).with('Guard::Rake::Vagrant box is stopping')
|
56
|
+
Guard::Notifier.should_receive(:notify).with('Vagrant box destroyed', :title => 'guard-rake-vagrant', :image => :success)
|
57
|
+
rake.stop
|
58
|
+
end
|
59
|
+
|
60
|
+
it "notifies on failure" do
|
61
|
+
@shellout.should_receive(:error!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
|
62
|
+
Guard::UI.should_receive(:info).with('Guard::Rake::Vagrant box is stopping')
|
63
|
+
Guard::Notifier.should_receive(:notify).with('Vagrant box destroy failed', :title => 'guard-rake-vagrant', :image => :failed)
|
64
|
+
Guard::UI.should_receive(:info).with('Vagrant box failed with Mixlib::ShellOut::ShellCommandFailed')
|
65
|
+
expect { rake.stop }.to throw_symbol(:task_has_failed)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guard-rake-vagrant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Salim Afiune
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-25 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: guard
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,20 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mixlib-shellout
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
51
|
requirements:
|
43
52
|
- - ! '>='
|
44
53
|
- !ruby/object:Gem::Version
|
@@ -61,29 +70,32 @@ files:
|
|
61
70
|
- lib/guard/rake/templates/Guardfile
|
62
71
|
- lib/guard/rake/vagrant.rb
|
63
72
|
- lib/guard/rake/version.rb
|
73
|
+
- spec/spec_helper.rb
|
74
|
+
- spec/unit/guard/rake_spec.rb
|
64
75
|
homepage: https://github.com/afiune/guard-rake-vagrant
|
65
76
|
licenses: []
|
77
|
+
metadata: {}
|
66
78
|
post_install_message:
|
67
79
|
rdoc_options: []
|
68
80
|
require_paths:
|
69
81
|
- lib
|
70
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
83
|
requirements:
|
73
84
|
- - ! '>='
|
74
85
|
- !ruby/object:Gem::Version
|
75
86
|
version: '0'
|
76
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
-
none: false
|
78
88
|
requirements:
|
79
89
|
- - ! '>='
|
80
90
|
- !ruby/object:Gem::Version
|
81
91
|
version: '0'
|
82
92
|
requirements: []
|
83
93
|
rubyforge_project:
|
84
|
-
rubygems_version:
|
94
|
+
rubygems_version: 2.2.2
|
85
95
|
signing_key:
|
86
|
-
specification_version:
|
96
|
+
specification_version: 4
|
87
97
|
summary: Guard Plugin that uses Rake and Vagrant to converge cookbooks and run integration
|
88
98
|
tests
|
89
|
-
test_files:
|
99
|
+
test_files:
|
100
|
+
- spec/spec_helper.rb
|
101
|
+
- spec/unit/guard/rake_spec.rb
|