hobo-inviqa 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.
- data/Gemfile.lock +10 -12
- data/README.md +74 -0
- data/hobo.gemspec +9 -12
- data/lib/hobo/cli.rb +4 -0
- data/lib/hobo/lib/seed/seed.rb +9 -0
- data/lib/hobo/paths.rb +4 -0
- data/lib/hobo/tasks/deps.rb +17 -5
- data/lib/hobo/tasks/seed.rb +2 -0
- data/lib/hobo/tasks/vm.rb +12 -10
- data/lib/hobo/version.rb +1 -1
- metadata +41 -72
data/Gemfile.lock
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hobo-inviqa (0.0.
|
5
|
-
bundler
|
6
|
-
highline
|
7
|
-
rake
|
8
|
-
rake-hooks
|
9
|
-
slop
|
4
|
+
hobo-inviqa (0.0.3)
|
5
|
+
bundler (~> 1.5.2)
|
6
|
+
highline (~> 1.6.20)
|
7
|
+
rake (~> 10.1.1)
|
8
|
+
rake-hooks (~> 1.2.3)
|
9
|
+
slop (~> 3.4.7)
|
10
10
|
|
11
11
|
GEM
|
12
12
|
remote: https://rubygems.org/
|
@@ -81,13 +81,11 @@ PLATFORMS
|
|
81
81
|
ruby
|
82
82
|
|
83
83
|
DEPENDENCIES
|
84
|
-
aruba
|
85
|
-
|
86
|
-
fakefs
|
84
|
+
aruba (~> 0.5.4)
|
85
|
+
fakefs (~> 0.5.0)
|
87
86
|
guard (~> 2.2.5)
|
88
87
|
guard-cucumber (~> 1.4.1)
|
89
88
|
guard-rspec (~> 4.2.4)
|
90
89
|
hobo-inviqa!
|
91
|
-
|
92
|
-
|
93
|
-
rspec
|
90
|
+
rr (~> 1.1.2)
|
91
|
+
rspec (~> 2.14.1)
|
data/README.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Hobo (gem)
|
2
|
+
Hobo is small rake based tool designed to assist with day to day tasks for developers.
|
3
|
+
Some highlights of functionality include:
|
4
|
+
|
5
|
+
- Fetch common tools
|
6
|
+
- Start most project VMs including setting up dependencies
|
7
|
+
- Utilize project seeds to kickstart a new project
|
8
|
+
|
9
|
+
Many more features are planned including assisting with host machine configuration, automatically pulling assets for the VM and providing commonly rewritten tasks as general utility libraries for use in Hobofiles.
|
10
|
+
|
11
|
+
# Pre-requisites
|
12
|
+
Hobo is a thin wrapper over our commonly used tools. As such, those tools still need to be present on your machine.
|
13
|
+
Hobo requires the following tools to be available on your path; if you can't execute these commands from a terminal you will need to install them before using hobo:
|
14
|
+
|
15
|
+
- git
|
16
|
+
- ruby
|
17
|
+
- rubygems
|
18
|
+
- bundler (rubygem)
|
19
|
+
- vagrant
|
20
|
+
|
21
|
+
# Installing
|
22
|
+
Simply execute the following command:
|
23
|
+
```
|
24
|
+
gem install hobo-inviqa
|
25
|
+
```
|
26
|
+
|
27
|
+
# Usage
|
28
|
+
Hobo is installed as a gem with a globally available binary called "hobo". Hobo allows you to get help for any command by specifying the --help option.
|
29
|
+
```
|
30
|
+
hobo --help
|
31
|
+
```
|
32
|
+
|
33
|
+
# Project specific commands
|
34
|
+
You can define project specific commands by creating a file in the root of the project called 'Hobofile'. Since hobo is based on Rake, you can use the normal Rake DSL to specify commands. Hobo also includes enhancements to this DSL that will be detailed later.
|
35
|
+
|
36
|
+
A task to download some specific files might look like:
|
37
|
+
```
|
38
|
+
desc "My-project tasks"
|
39
|
+
namespace "my-project" do
|
40
|
+
desc "Download images"
|
41
|
+
task "download-images" do
|
42
|
+
Net::HTTP.get("my-domain.com", "/my-file.jpg")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
```
|
46
|
+
|
47
|
+
The above command would then be immediately available in hobo:
|
48
|
+
```
|
49
|
+
hobo my-project download-files
|
50
|
+
```
|
51
|
+
|
52
|
+
# Rake DSL enhancements
|
53
|
+
This section is yet to be written; please see lib/hobo/patches/rake.rb and the internal tasks (for usage) under lib/hobo/tasks for the time being.
|
54
|
+
|
55
|
+
- long_desc - Long description provided by help
|
56
|
+
- option - Specify command line option
|
57
|
+
- hidden - Hide task
|
58
|
+
- replace - Replace a task with a new one
|
59
|
+
- before - Execute task before other task
|
60
|
+
- after - Execute task after other task
|
61
|
+
|
62
|
+
Please note that replace, before and after should be used sparingly to augment or modify the internal tasks provided by hobo on a per project level.
|
63
|
+
|
64
|
+
# Contributing
|
65
|
+
If you wish to contribute to hobo:
|
66
|
+
- Clone this repository
|
67
|
+
- Execute bundle install
|
68
|
+
- Create a feature branch with descriptive name (i.e. feature/magento-tasks)
|
69
|
+
- Make changes
|
70
|
+
- Build and install the gem: rake build && rake install
|
71
|
+
- Push feature branch back to this repo
|
72
|
+
- Submit a PR with details of changes
|
73
|
+
|
74
|
+
You can run tests using Guard by executing "guard" in a terminal in the project folder. Guard will re-run tests where it knows how but otherwise run cucumber tests with "cucumber" (in the guard terminal) and rspec tests with "rspec" (in the guard terminal).
|
data/hobo.gemspec
CHANGED
@@ -18,19 +18,16 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
|
22
|
-
spec.add_dependency "
|
23
|
-
spec.add_dependency "
|
24
|
-
spec.add_dependency "rake"
|
25
|
-
spec.add_dependency "
|
26
|
-
spec.add_dependency "bundler"
|
21
|
+
spec.add_dependency "slop", "~> 3.4.7"
|
22
|
+
spec.add_dependency "highline", "~> 1.6.20"
|
23
|
+
spec.add_dependency "rake", "~> 10.1.1"
|
24
|
+
spec.add_dependency "rake-hooks", "~> 1.2.3"
|
25
|
+
spec.add_dependency "bundler", "~> 1.5.2"
|
27
26
|
|
28
|
-
spec.add_development_dependency "
|
29
|
-
spec.add_development_dependency "
|
30
|
-
spec.add_development_dependency "
|
31
|
-
spec.add_development_dependency "
|
32
|
-
spec.add_development_dependency "fakefs"
|
33
|
-
spec.add_development_dependency "rr"
|
27
|
+
spec.add_development_dependency "aruba", "~> 0.5.4"
|
28
|
+
spec.add_development_dependency "rspec", "~> 2.14.1"
|
29
|
+
spec.add_development_dependency "fakefs", "~> 0.5.0"
|
30
|
+
spec.add_development_dependency "rr", "~> 1.1.2"
|
34
31
|
spec.add_development_dependency "guard", "~> 2.2.5"
|
35
32
|
spec.add_development_dependency "guard-rspec", "~> 4.2.4"
|
36
33
|
spec.add_development_dependency "guard-cucumber", "~> 1.4.1"
|
data/lib/hobo/cli.rb
CHANGED
data/lib/hobo/lib/seed/seed.rb
CHANGED
@@ -26,6 +26,15 @@ module Hobo
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
def vm_ip
|
30
|
+
[
|
31
|
+
10,
|
32
|
+
[*0..255].sample,
|
33
|
+
[*0..255].sample,
|
34
|
+
[*2..255].sample
|
35
|
+
].join('.')
|
36
|
+
end
|
37
|
+
|
29
38
|
def version
|
30
39
|
Dir.chdir @seed_path do
|
31
40
|
Hobo::Helper.shell 'git', 'rev-parse', '--short', 'HEAD', :capture => true
|
data/lib/hobo/paths.rb
CHANGED
data/lib/hobo/tasks/deps.rb
CHANGED
@@ -6,7 +6,7 @@ namespace :deps do
|
|
6
6
|
|
7
7
|
desc "Install Gem dependencies"
|
8
8
|
task :gems do
|
9
|
-
locate
|
9
|
+
locate "*Gemfile" do
|
10
10
|
Hobo.ui.title "Installing Gem dependencies"
|
11
11
|
Bundler.with_clean_env do
|
12
12
|
shell "bundle", "install", realtime: true, indent: 2
|
@@ -20,19 +20,31 @@ namespace :deps do
|
|
20
20
|
if File.exists? File.join(Hobo.project_path, "composer.json")
|
21
21
|
Rake::Task["tools:composer"].invoke
|
22
22
|
Hobo.ui.title "Installing composer dependencies"
|
23
|
-
|
23
|
+
Dir.chdir Hobo.project_path do
|
24
|
+
shell "php", File.join(Hobo.project_bin_path, 'composer.phar'), "install", "--ansi", realtime: true, indent: 2
|
25
|
+
end
|
24
26
|
end
|
25
27
|
Hobo.ui.separator
|
26
28
|
end
|
27
29
|
|
28
30
|
desc "Install vagrant plugins"
|
29
|
-
task :vagrant_plugins do
|
30
|
-
|
31
|
+
task :vagrant_plugins => [ "deps:gems" ] do
|
32
|
+
plugins = shell "vagrant plugin list", :capture => true
|
33
|
+
locate "*Vagrantfile" do
|
34
|
+
File.read("Vagrantfile").split("\n").each do |line|
|
35
|
+
next unless line.match /Vagrant\.require_plugin (.*)/
|
36
|
+
plugin = $1.gsub(/['"]*/, '')
|
37
|
+
next if plugins.include? "#{plugin} "
|
38
|
+
Hobo.ui.title "Installing vagrant plugin: #{plugin}"
|
39
|
+
bundle_shell "vagrant", "plugin", "install", plugin, :realtime => true, :indent => 2
|
40
|
+
Hobo.ui.separator
|
41
|
+
end
|
42
|
+
end
|
31
43
|
end
|
32
44
|
|
33
45
|
desc "Install chef dependencies"
|
34
46
|
task :chef do
|
35
|
-
locate
|
47
|
+
locate "*Cheffile" do
|
36
48
|
Hobo.ui.title "Installing chef dependencies"
|
37
49
|
Bundler.with_clean_env do
|
38
50
|
bundle_shell "librarian-chef", "install", "--verbose", realtime: true, indent: 2 do |line|
|
data/lib/hobo/tasks/seed.rb
CHANGED
data/lib/hobo/tasks/vm.rb
CHANGED
@@ -2,16 +2,16 @@ desc "VM related commands"
|
|
2
2
|
project_only
|
3
3
|
namespace :vm do
|
4
4
|
def vagrantfile &block
|
5
|
-
locate
|
5
|
+
locate "*Vagrantfile" do
|
6
6
|
yield
|
7
7
|
end
|
8
8
|
end
|
9
9
|
|
10
|
-
desc "Start VM"
|
11
|
-
task :
|
10
|
+
desc "Start & provision VM"
|
11
|
+
task :up => [ 'deps:gems', 'deps:chef', 'deps:composer', 'deps:vagrant_plugins', 'vm:start', 'vm:provision' ]
|
12
12
|
|
13
13
|
desc "Stop VM"
|
14
|
-
task :stop do
|
14
|
+
task :stop => [ "deps:gems" ] do
|
15
15
|
vagrantfile do
|
16
16
|
Hobo.ui.title "Stopping VM"
|
17
17
|
bundle_shell "vagrant", "suspend", "--color", realtime: true, indent: 2
|
@@ -20,18 +20,19 @@ namespace :vm do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
desc "Rebuild VM"
|
23
|
-
task :rebuild => [ 'vm:destroy', 'vm:
|
23
|
+
task :rebuild => [ 'vm:destroy', 'vm:up' ]
|
24
24
|
|
25
25
|
desc "Destroy VM"
|
26
|
-
task :destroy do
|
26
|
+
task :destroy => [ "deps:gems" ] do
|
27
27
|
vagrantfile do
|
28
|
-
Hobo.ui.title "
|
29
|
-
bundle_shell "vagrant", "destroy", "--color", realtime: true, indent: 2
|
28
|
+
Hobo.ui.title "Destroying VM"
|
29
|
+
bundle_shell "vagrant", "destroy", "--force", "--color", realtime: true, indent: 2
|
30
30
|
Hobo.ui.separator
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
|
34
|
+
desc "Start VM without provision"
|
35
|
+
task :start => [ "deps:gems" ] do
|
35
36
|
vagrantfile do
|
36
37
|
Hobo.ui.title "Starting vagrant VM"
|
37
38
|
bundle_shell "vagrant", "up", "--no-provision", "--color", realtime: true, indent: 2
|
@@ -39,7 +40,8 @@ namespace :vm do
|
|
39
40
|
end
|
40
41
|
end
|
41
42
|
|
42
|
-
|
43
|
+
desc "Provision VM"
|
44
|
+
task :provision => [ "deps:gems" ] do
|
43
45
|
vagrantfile do
|
44
46
|
Hobo.ui.title "Provisioning VM"
|
45
47
|
bundle_shell "vagrant", "provision", "--color", realtime: true, indent: 2
|
data/lib/hobo/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobo-inviqa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,184 +9,152 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: slop
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 3.4.7
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
29
|
+
version: 3.4.7
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: highline
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: 1.6.20
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
45
|
+
version: 1.6.20
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rake
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 10.1.1
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 10.1.1
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: rake-hooks
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
none: false
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 1.2.3
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 1.2.3
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: bundler
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
85
|
+
version: 1.5.2
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
89
|
none: false
|
90
90
|
requirements:
|
91
|
-
- -
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: bundler
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: rake
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
91
|
+
- - ~>
|
124
92
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
93
|
+
version: 1.5.2
|
126
94
|
- !ruby/object:Gem::Dependency
|
127
95
|
name: aruba
|
128
96
|
requirement: !ruby/object:Gem::Requirement
|
129
97
|
none: false
|
130
98
|
requirements:
|
131
|
-
- -
|
99
|
+
- - ~>
|
132
100
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
101
|
+
version: 0.5.4
|
134
102
|
type: :development
|
135
103
|
prerelease: false
|
136
104
|
version_requirements: !ruby/object:Gem::Requirement
|
137
105
|
none: false
|
138
106
|
requirements:
|
139
|
-
- -
|
107
|
+
- - ~>
|
140
108
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
109
|
+
version: 0.5.4
|
142
110
|
- !ruby/object:Gem::Dependency
|
143
111
|
name: rspec
|
144
112
|
requirement: !ruby/object:Gem::Requirement
|
145
113
|
none: false
|
146
114
|
requirements:
|
147
|
-
- -
|
115
|
+
- - ~>
|
148
116
|
- !ruby/object:Gem::Version
|
149
|
-
version:
|
117
|
+
version: 2.14.1
|
150
118
|
type: :development
|
151
119
|
prerelease: false
|
152
120
|
version_requirements: !ruby/object:Gem::Requirement
|
153
121
|
none: false
|
154
122
|
requirements:
|
155
|
-
- -
|
123
|
+
- - ~>
|
156
124
|
- !ruby/object:Gem::Version
|
157
|
-
version:
|
125
|
+
version: 2.14.1
|
158
126
|
- !ruby/object:Gem::Dependency
|
159
127
|
name: fakefs
|
160
128
|
requirement: !ruby/object:Gem::Requirement
|
161
129
|
none: false
|
162
130
|
requirements:
|
163
|
-
- -
|
131
|
+
- - ~>
|
164
132
|
- !ruby/object:Gem::Version
|
165
|
-
version:
|
133
|
+
version: 0.5.0
|
166
134
|
type: :development
|
167
135
|
prerelease: false
|
168
136
|
version_requirements: !ruby/object:Gem::Requirement
|
169
137
|
none: false
|
170
138
|
requirements:
|
171
|
-
- -
|
139
|
+
- - ~>
|
172
140
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
141
|
+
version: 0.5.0
|
174
142
|
- !ruby/object:Gem::Dependency
|
175
143
|
name: rr
|
176
144
|
requirement: !ruby/object:Gem::Requirement
|
177
145
|
none: false
|
178
146
|
requirements:
|
179
|
-
- -
|
147
|
+
- - ~>
|
180
148
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
149
|
+
version: 1.1.2
|
182
150
|
type: :development
|
183
151
|
prerelease: false
|
184
152
|
version_requirements: !ruby/object:Gem::Requirement
|
185
153
|
none: false
|
186
154
|
requirements:
|
187
|
-
- -
|
155
|
+
- - ~>
|
188
156
|
- !ruby/object:Gem::Version
|
189
|
-
version:
|
157
|
+
version: 1.1.2
|
190
158
|
- !ruby/object:Gem::Dependency
|
191
159
|
name: guard
|
192
160
|
requirement: !ruby/object:Gem::Requirement
|
@@ -247,6 +215,7 @@ files:
|
|
247
215
|
- Gemfile.lock
|
248
216
|
- Guardfile
|
249
217
|
- Hobofile
|
218
|
+
- README.md
|
250
219
|
- Rakefile
|
251
220
|
- bin/hobo
|
252
221
|
- features/deps.feature
|
@@ -312,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
312
281
|
version: '0'
|
313
282
|
segments:
|
314
283
|
- 0
|
315
|
-
hash: -
|
284
|
+
hash: -3066616493160973172
|
316
285
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
317
286
|
none: false
|
318
287
|
requirements:
|
@@ -321,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
321
290
|
version: '0'
|
322
291
|
segments:
|
323
292
|
- 0
|
324
|
-
hash: -
|
293
|
+
hash: -3066616493160973172
|
325
294
|
requirements: []
|
326
295
|
rubyforge_project:
|
327
296
|
rubygems_version: 1.8.23
|