ventriloquist 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd4971f545c453a892142ee6178266d29df7e453
4
- data.tar.gz: 23399080896e6e30558ee28697fa16c0bf3b51ee
3
+ metadata.gz: 51bde831f81c68786e445d286b7e1f0d72ed5f94
4
+ data.tar.gz: 69dcd45a129a2f6ceb6abf8b30a73a984fcac54d
5
5
  SHA512:
6
- metadata.gz: 61ce67a1d4dd042faae1cd421aaedef5155e9497a5d9997a16cce463efab44eb8d4e5d2c663b670c19ca73d1c4de91823a3b16abc677416bd46af7919974a3e2
7
- data.tar.gz: 595f5e34bf1fa1a7c6d57d2412910157b53192bd09963747c930f85868e44b5daeaf832ccc2615770bdc36227feb38df69d04c20423c53c4647dd66cae9277ff
6
+ metadata.gz: 9cdc705df3ace8da7a8cbcf1c16cb2f40a93ebee4b9011da12e5e879bf33479ba4d9efb5faa21af433b1d5d43e2131a22357966e47402a331b67e372d5c3f6d4
7
+ data.tar.gz: 7469f127a77e390daeac4efcfbcec0229cb7874b7b795e90c0cd69a270d786b68809085ba6adb20b105c7657abb17e2b2927a1416754bf0ef0070dc4530ac844
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## [0.3.0](https://github.com/fgrehm/ventriloquist/compare/v0.2.1...v0.3.0) (October 23, 2013)
2
+
3
+ FEATURES:
4
+
5
+ - Elixir support [[GH-3]]
6
+ - Python support [[GH-19]]
7
+
8
+ IMPROVEMENTS:
9
+
10
+ - Bump [[vocker]] dependency to 0.3.2
11
+
1
12
  ## [0.2.1](https://github.com/fgrehm/ventriloquist/compare/v0.2.0...v0.2.1) (October 12, 2013)
2
13
 
3
14
  FEATURES:
@@ -23,6 +34,9 @@ BUG FIXES:
23
34
 
24
35
 
25
36
 
37
+ [GH-19]: https://github.com/fgrehm/ventriloquist/issues/19
38
+ [GH-3]: https://github.com/fgrehm/ventriloquist/issues/3
26
39
  [GH-22]: https://github.com/fgrehm/ventriloquist/issues/22
27
40
  [GH-12]: https://github.com/fgrehm/ventriloquist/issues/12
28
41
  [GH-8]: https://github.com/fgrehm/ventriloquist/issues/8
42
+ [vocker]: https://github.com/fgrehm/vocker
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  GIT
2
2
  remote: git://github.com/fgrehm/vagrant-cachier.git
3
- revision: f8484f73434f640b790300085002b084c8a96d6b
3
+ revision: 8e40d0c0603d3ae4b47aa5a06ec328b8be07df33
4
4
  specs:
5
- vagrant-cachier (0.3.3.dev)
5
+ vagrant-cachier (0.4.1.dev)
6
6
 
7
7
  GIT
8
8
  remote: git://github.com/fgrehm/vagrant-global-status.git
@@ -12,15 +12,15 @@ GIT
12
12
 
13
13
  GIT
14
14
  remote: git://github.com/fgrehm/vagrant-lxc.git
15
- revision: 2c32f1caa6bb6fff1e2d0daefe3f1f675b99474c
15
+ revision: 9e3b371e11da3ad5ad29c9364b204bca4e7f3c1f
16
16
  specs:
17
- vagrant-lxc (0.5.1.dev)
17
+ vagrant-lxc (0.6.4.dev)
18
18
 
19
19
  GIT
20
20
  remote: git://github.com/fgrehm/vagrant-pristine.git
21
- revision: 5c400d7850fc5f98d9601b59f4c3bd74818650de
21
+ revision: 4638491786943bfbf6f115b1fc379f069963fe46
22
22
  specs:
23
- vagrant-pristine (0.2.0)
23
+ vagrant-pristine (0.3.0)
24
24
 
25
25
  GIT
26
26
  remote: git://github.com/mitchellh/vagrant.git
@@ -38,14 +38,16 @@ GIT
38
38
  PATH
39
39
  remote: .
40
40
  specs:
41
- ventriloquist (0.2.1)
42
- vocker (~> 0.3.1)
41
+ ventriloquist (0.3.0)
42
+ vocker (~> 0.3.3)
43
43
 
44
44
  GEM
45
45
  remote: https://rubygems.org/
46
46
  specs:
47
47
  bogus (0.1.4)
48
48
  dependor (>= 0.0.4)
49
+ celluloid (0.15.2)
50
+ timers (~> 1.1.0)
49
51
  childprocess (0.3.9)
50
52
  ffi (~> 1.0, >= 1.0.11)
51
53
  coderay (1.0.9)
@@ -54,24 +56,24 @@ GEM
54
56
  erubis (2.7.0)
55
57
  ffi (1.9.0)
56
58
  formatador (0.2.4)
57
- guard (1.8.2)
59
+ guard (2.2.2)
58
60
  formatador (>= 0.2.4)
59
- listen (>= 1.0.0)
60
- lumberjack (>= 1.0.2)
61
- pry (>= 0.9.10)
62
- thor (>= 0.14.6)
63
- guard-rspec (3.0.2)
64
- guard (>= 1.8)
65
- rspec (~> 2.13)
61
+ listen (~> 2.1)
62
+ lumberjack (~> 1.0)
63
+ pry (>= 0.9.12)
64
+ thor (>= 0.18.1)
65
+ guard-rspec (4.0.3)
66
+ guard (>= 2.1.1)
67
+ rspec (~> 2.14)
66
68
  i18n (0.6.5)
67
- listen (1.3.1)
69
+ listen (2.1.1)
70
+ celluloid (>= 0.15.2)
68
71
  rb-fsevent (>= 0.9.3)
69
72
  rb-inotify (>= 0.9)
70
- rb-kqueue (>= 0.2)
71
73
  log4r (1.1.10)
72
74
  lumberjack (1.0.4)
73
75
  method_source (0.8.2)
74
- multi_json (1.7.9)
76
+ multi_json (1.8.2)
75
77
  net-scp (1.1.2)
76
78
  net-ssh (>= 2.6.5)
77
79
  net-ssh (2.6.8)
@@ -81,25 +83,24 @@ GEM
81
83
  slop (~> 3.4)
82
84
  rake (10.1.0)
83
85
  rb-fsevent (0.9.3)
84
- rb-inotify (0.9.1)
85
- ffi (>= 0.5.0)
86
- rb-kqueue (0.2.0)
86
+ rb-inotify (0.9.2)
87
87
  ffi (>= 0.5.0)
88
88
  rspec (2.14.1)
89
89
  rspec-core (~> 2.14.0)
90
90
  rspec-expectations (~> 2.14.0)
91
91
  rspec-mocks (~> 2.14.0)
92
- rspec-core (2.14.5)
93
- rspec-expectations (2.14.2)
92
+ rspec-core (2.14.6)
93
+ rspec-expectations (2.14.3)
94
94
  diff-lcs (>= 1.1.3, < 2.0)
95
- rspec-mocks (2.14.3)
95
+ rspec-mocks (2.14.4)
96
96
  simplecov (0.7.1)
97
97
  multi_json (~> 1.0)
98
98
  simplecov-html (~> 0.7.1)
99
99
  simplecov-html (0.7.1)
100
100
  slop (3.4.6)
101
101
  thor (0.18.1)
102
- vocker (0.3.1)
102
+ timers (1.1.0)
103
+ vocker (0.3.3)
103
104
 
104
105
  PLATFORMS
105
106
  ruby
data/README.md CHANGED
@@ -45,7 +45,7 @@ end
45
45
 
46
46
  Early development, the feature set and configuration format might change rapidly
47
47
  and has only been tested on the following Ubuntu 13.04 Vagrant VMs using Docker
48
- 0.6.1 and Vagrant 1.2.7 / 1.3.0:
48
+ 0.6.1 and Vagrant 1.2.0+:
49
49
 
50
50
  * http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-amd64-vagrant-disk1.box
51
51
  * http://bit.ly/vagrant-lxc-raring64-2013-07-12 (yes! LXC inception :)
@@ -125,6 +125,9 @@ Vagrant.configure("2") do |config|
125
125
  end
126
126
  ```
127
127
 
128
+ If for more information on creating / running Docker containers please have a look
129
+ at [Vocker](https://github.com/fgrehm/vocker)'s documentation.
130
+
128
131
 
129
132
  ## Available platforms
130
133
 
@@ -142,13 +145,15 @@ install 2.0.0 with the latest path level.
142
145
  So far I've only set up the stuff I need to work but feel free to submit a Pull
143
146
  Request with the scripts required to set things for other platforms:
144
147
 
145
- | Name | Provides |
146
- | --------- | ---------------- |
147
- | ruby | rvm + Ruby 2.0.0 |
148
- | go | 1.1.2 |
149
- | nodejs | nvm + Nodejs |
150
- | phantomjs | 1.9.1 |
148
+ | Name | Provides |
149
+ | --------- | ----------------- |
150
+ | ruby | rvm + Ruby 2.0.0 |
151
+ | go | 1.1.2 |
152
+ | nodejs | nvm + Nodejs 0.10 |
153
+ | phantomjs | 1.9.1 |
151
154
  | erlang | Currently limited to the latest version available at https://packages.erlang-solutions.com/erlang/ (currently R16B02) |
155
+ | elixir | 0.10.3 |
156
+ | python | pyenv + 3.3.2 |
152
157
 
153
158
 
154
159
  ## Ideas for improvements
@@ -45,6 +45,6 @@ STR
45
45
  env.services << ['pg:9.1', 'mysql']
46
46
 
47
47
  env.platforms << { ruby: { version: '2.0.0' } }
48
- env.platforms << %w( nodejs phantomjs go:1.1.2 erlang)
48
+ env.platforms << %w( nodejs phantomjs go:1.1.2 erlang elixir)
49
49
  end
50
50
  end
@@ -0,0 +1,48 @@
1
+ module VagrantPlugins
2
+ module Ventriloquist
3
+ module Cap
4
+ module Debian
5
+ module ElixirInstall
6
+ ELIXIR_PRECOMPILED = "https://github.com/elixir-lang/elixir/releases/download/vVERSION/vVERSION.zip"
7
+
8
+ def self.elixir_install(machine,version)
9
+ @version = version
10
+
11
+ machine.communicate.tap do |comm|
12
+ if ! comm.test('which iex > /dev/null')
13
+ bin_path = "/usr/local/elixir/bin"
14
+ ELIXIR_PRECOMPILED.gsub!(/VERSION/,@version)
15
+
16
+ machine.env.ui.info("Installing Elixir #{@version}")
17
+
18
+ path = download_path(comm)
19
+
20
+ unless comm.test("test -f #{path}")
21
+ machine.guest.capability(:download, ELIXIR_PRECOMPILED, path)
22
+ end
23
+
24
+ comm.sudo('apt-get install -y unzip')
25
+ comm.sudo("unzip -o #{path} -d /usr/local/elixir")
26
+
27
+ if ! comm.test("grep -q '#{bin_path}' /etc/profile.d/ventriloquist.sh 2>/dev/null")
28
+ comm.sudo("echo 'export PATH=$PATH:#{bin_path}' >> /etc/profile.d/ventriloquist.sh")
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ private
35
+
36
+ def self.download_path(comm)
37
+ # If vagrant-cachier apt cache bucket is available, drop it there
38
+ if comm.test("test -d /tmp/vagrant-cache")
39
+ "/tmp/vagrant-cache/elixir-v#{@version}.zip"
40
+ else
41
+ "/tmp/elixir-v#{@version}.zip"
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,34 @@
1
+ module VagrantPlugins
2
+ module Ventriloquist
3
+ module Cap
4
+ module Debian
5
+ module Python
6
+ def self.pyenv_install(machine)
7
+ machine.communicate.tap do |comm|
8
+ if ! comm.test('test -d $HOME/.pyenv')
9
+ machine.env.ui.info('Installing pyenv dependencies')
10
+ comm.sudo('sudo apt-get install -y build-essential libreadline-dev libssl-dev libsqlite3-dev libbz2-dev')
11
+
12
+ machine.env.ui.info('Installing pyenv')
13
+ comm.execute <<-INSTALL
14
+ git clone git://github.com/yyuu/pyenv.git $HOME/.pyenv
15
+ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
16
+ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
17
+ echo 'eval "$(pyenv init -)"' >> ~/.profile
18
+ INSTALL
19
+ end
20
+ end
21
+ end
22
+
23
+ def self.pyenv_install_python(machine, version)
24
+ if ! machine.communicate.test("pyenv versions | grep #{version}")
25
+ machine.env.ui.info("Installing Python #{version}")
26
+ machine.communicate.execute("pyenv install #{version}")
27
+ machine.communicate.execute("pyenv global #{version}")
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -6,8 +6,8 @@ module VagrantPlugins
6
6
  def self.rvm_install(machine)
7
7
  if ! machine.communicate.test('test -d $HOME/.rvm')
8
8
  machine.env.ui.info('Installing RVM')
9
- machine.communicate.execute('\curl -L https://get.rvm.io | bash -s stable --autolibs=enabled')
10
- #machine.communicate.execute('rvm requirements')
9
+ machine.communicate.execute('\curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --ignore-dotfiles')
10
+ machine.communicate.execute("echo 'source $HOME/.rvm/scripts/rvm' >> ~/.profile")
11
11
  end
12
12
  end
13
13
  end
@@ -0,0 +1,15 @@
1
+ module VagrantPlugins
2
+ module Ventriloquist
3
+ module Platforms
4
+ class Elixir < Platform
5
+ def provision(machine)
6
+ @config[:version] = '0.10.3' if @config[:version] == 'latest'
7
+ machine.guest.tap do |guest|
8
+ guest.capability(:erlang_install)
9
+ guest.capability(:elixir_install, @config[:version])
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module VagrantPlugins
2
+ module Ventriloquist
3
+ module Platforms
4
+ class Python < Platform
5
+ def provision(machine)
6
+ @config[:version] = '3.3.2' if @config[:version] == 'latest'
7
+ machine.guest.tap do |guest|
8
+ guest.capability(:pyenv_install)
9
+ guest.capability(:pyenv_install_python, @config[:version])
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -4,6 +4,8 @@ require_relative 'platforms/nodejs'
4
4
  require_relative 'platforms/phantomjs'
5
5
  require_relative 'platforms/go'
6
6
  require_relative 'platforms/erlang'
7
+ require_relative 'platforms/elixir'
8
+ require_relative 'platforms/python'
7
9
 
8
10
  module VagrantPlugins
9
11
  module Ventriloquist
@@ -13,7 +15,9 @@ module VagrantPlugins
13
15
  'nodejs' => Platforms::NodeJS,
14
16
  'phantomjs' => Platforms::PhantomJS,
15
17
  'go' => Platforms::Go,
16
- 'erlang' => Platforms::Erlang
18
+ 'erlang' => Platforms::Erlang,
19
+ 'elixir' => Platforms::Elixir,
20
+ 'python' => Platforms::Python
17
21
  }
18
22
 
19
23
  def initialize(platforms, mapping = MAPPING)
@@ -124,6 +124,21 @@ module VagrantPlugins
124
124
  require_relative "cap/debian/erlang_install"
125
125
  Cap::Debian::ErlangInstall
126
126
  end
127
+
128
+ guest_capability("debian", "elixir_install") do
129
+ require_relative "cap/debian/elixir_install"
130
+ Cap::Debian::ElixirInstall
131
+ end
132
+
133
+ guest_capability("debian", "pyenv_install") do
134
+ require_relative "cap/debian/python"
135
+ Cap::Debian::Python
136
+ end
137
+
138
+ guest_capability("debian", "pyenv_install_python") do
139
+ require_relative "cap/debian/python"
140
+ Cap::Debian::Python
141
+ end
127
142
  end
128
143
  end
129
144
  end
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Ventriloquist
3
- VERSION = "0.2.1"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -18,5 +18,5 @@ 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
- spec.add_dependency 'vocker', '~> 0.3.1'
21
+ spec.add_dependency 'vocker', '~> 0.3.3'
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ventriloquist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabio Rehm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-12 00:00:00.000000000 Z
11
+ date: 2013-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vocker
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 0.3.1
19
+ version: 0.3.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 0.3.1
26
+ version: 0.3.3
27
27
  description: Vagrant development environments made easy
28
28
  email:
29
29
  - fgrehm@gmail.com
@@ -43,6 +43,7 @@ files:
43
43
  - Rakefile
44
44
  - development/Vagrantfile
45
45
  - lib/ventriloquist.rb
46
+ - lib/ventriloquist/cap/debian/elixir_install.rb
46
47
  - lib/ventriloquist/cap/debian/erlang_install.rb
47
48
  - lib/ventriloquist/cap/debian/git_install.rb
48
49
  - lib/ventriloquist/cap/debian/go_install.rb
@@ -53,6 +54,7 @@ files:
53
54
  - lib/ventriloquist/cap/debian/pg_install_client.rb
54
55
  - lib/ventriloquist/cap/debian/pg_install_headers.rb
55
56
  - lib/ventriloquist/cap/debian/phantomjs_install.rb
57
+ - lib/ventriloquist/cap/debian/python.rb
56
58
  - lib/ventriloquist/cap/debian/ventriloquist_containers_upstart.rb
57
59
  - lib/ventriloquist/cap/linux/download.rb
58
60
  - lib/ventriloquist/cap/linux/make.rb
@@ -66,10 +68,12 @@ files:
66
68
  - lib/ventriloquist/config.rb
67
69
  - lib/ventriloquist/errors.rb
68
70
  - lib/ventriloquist/platform.rb
71
+ - lib/ventriloquist/platforms/elixir.rb
69
72
  - lib/ventriloquist/platforms/erlang.rb
70
73
  - lib/ventriloquist/platforms/go.rb
71
74
  - lib/ventriloquist/platforms/nodejs.rb
72
75
  - lib/ventriloquist/platforms/phantomjs.rb
76
+ - lib/ventriloquist/platforms/python.rb
73
77
  - lib/ventriloquist/platforms/ruby.rb
74
78
  - lib/ventriloquist/platforms_builder.rb
75
79
  - lib/ventriloquist/plugin.rb