vagrant-parallels 0.0.3.dev → 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/README.md +17 -6
- data/lib/vagrant-parallels/action/import.rb +4 -5
- data/lib/vagrant-parallels/action/prune_nfs_exports.rb +1 -1
- data/lib/vagrant-parallels/action/register_template.rb +4 -2
- data/lib/vagrant-parallels/action/share_folders.rb +11 -2
- data/lib/vagrant-parallels/action/unregister_template.rb +6 -4
- data/lib/vagrant-parallels/action.rb +11 -12
- data/lib/vagrant-parallels/driver/prl_ctl.rb +33 -18
- data/lib/vagrant-parallels/guest_cap/darwin/mount_parallels_shared_folder.rb +31 -0
- data/lib/vagrant-parallels/guest_cap/linux/mount_parallels_shared_folder.rb +31 -0
- data/lib/vagrant-parallels/plugin.rb +11 -2
- data/lib/vagrant-parallels/version.rb +1 -1
- data/vagrant-parallels.gemspec +1 -1
- metadata +9 -18
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OGU5YWFiMzVmN2ZiNjQ4NmM1Y2Q2YzY3YTY2ODg4ZmFmZjMyYTYzMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDFmMjZjZTZhMzc3M2M5MDUyMDdkZDhmZDIwYmJkNGEzMDA0ZmY0OQ==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OGFhZGQ5NTE5NGVhNGYwOTk1OWFhYmMzNThlMTFkNmYxZGY3ZjRmNDMxNmJh
|
10
|
+
YzhhZTMwNWVlZjYxMWMwMjlkMmY0ZjdmYzAxY2UzNDgzNTIzZjliNTU1YWMw
|
11
|
+
NzcyOWIwNDY4NTM5ZWFmY2NlOGY5N2M3ZjQ5NjkwNzVhNzFhYTA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NzdhMzdlOTEyMzU1ZThkZTJhMTdjMzMzMTk1YzMyNTY3MzNkZmFjZWI1ZTlm
|
14
|
+
N2I1ZGYwY2U3NjM3YjA5ZjRhYjlmOTIxZTI3MTgyNjMwNjBlYTM3YTA2ZGUy
|
15
|
+
ZmE1MTdmOTRkOWZmNzI5ODljYmFlOTAyZjAyZTY3ZTE5Njg0Njc=
|
data/README.md
CHANGED
@@ -1,19 +1,17 @@
|
|
1
1
|
# Vagrant Parallels Provider
|
2
2
|
|
3
|
-
This is a [Vagrant](http://www.vagrantup.com) 1.2+ plugin that adds an [Parallels](http://www.parallels.com/products/desktop/)
|
4
|
-
provider to Vagrant, allowing Vagrant to control and provision machines using Parallels insead of the default Virtualbox.
|
3
|
+
This is a [Vagrant](http://www.vagrantup.com) 1.2+ plugin that adds an [Parallels Desktop](http://www.parallels.com/products/desktop/)
|
4
|
+
provider to Vagrant, allowing Vagrant to control and provision machines using Parallels Desktop insead of the default Virtualbox.
|
5
5
|
|
6
6
|
## Note
|
7
7
|
|
8
8
|
This project is still in active development and not all vagrant features have been developed, please report any issues you might find.
|
9
|
-
Almost all features are available except for exporting/packaging VM's this will be available soon
|
9
|
+
Almost all features are available except for exporting/packaging VM's this will be available soon.
|
10
10
|
|
11
11
|
We look forward to hearing from you with any issues or features, Thank you
|
12
12
|
|
13
13
|
## Usage
|
14
|
-
|
15
|
-
Install using standard Vagrant 1.1+ plugin installation methods. After
|
16
|
-
installing, then do a `vagrant up` and specify the `parallels` provider. An example is shown below.
|
14
|
+
Install using standard Vagrant 1.1+ plugin installation methods. After installing, then do a `vagrant up` and specify the `parallels` provider. An example is shown below.
|
17
15
|
|
18
16
|
```
|
19
17
|
$ vagrant plugin install vagrant-parallels
|
@@ -79,3 +77,16 @@ Use bundler to execute Vagrant:
|
|
79
77
|
```
|
80
78
|
$ bundle exec vagrant up --provider=parallels
|
81
79
|
```
|
80
|
+
|
81
|
+
After testing you can also build a gem-package by yourself and then install it as a plugin:
|
82
|
+
(if you have 'vagrant-parallels' plugin already installed, delete it first)
|
83
|
+
|
84
|
+
```
|
85
|
+
$ git clone https://github.com/yshahin/vagrant-parallels
|
86
|
+
$ cd vagrant-parallels
|
87
|
+
$ rake build
|
88
|
+
...
|
89
|
+
$ vagrant plugin install ./pkg/vagrant-parallels-<version>.gem
|
90
|
+
...
|
91
|
+
```
|
92
|
+
So, now you have your own plugin installed, check it by command `vagrant plugin list`
|
@@ -15,16 +15,15 @@ module VagrantPlugins
|
|
15
15
|
vm_name = prefix + "_#{Time.now.to_i}"
|
16
16
|
|
17
17
|
# Verify the name is not taken
|
18
|
-
if env[:machine].provider.driver.
|
18
|
+
if env[:machine].provider.driver.read_all_names.has_key?(vm_name)
|
19
19
|
raise Vagrant::Errors::VMNameExists, :name => vm_name
|
20
20
|
end
|
21
21
|
|
22
22
|
# Import the virtual machine
|
23
|
-
|
24
|
-
|
25
|
-
).first.basename.to_s[0...-4]
|
23
|
+
template_path = File.realpath(Pathname.glob(env[:machine].box.directory.join('*.pvm')).first)
|
24
|
+
template_uuid = env[:machine].provider.driver.read_all_paths[template_path]
|
26
25
|
|
27
|
-
env[:machine].id = env[:machine].provider.driver.import(
|
26
|
+
env[:machine].id = env[:machine].provider.driver.import(template_uuid, vm_name) do |progress|
|
28
27
|
env[:ui].clear_line
|
29
28
|
env[:ui].report_progress(progress, 100, false)
|
30
29
|
end
|
@@ -7,9 +7,11 @@ module VagrantPlugins
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def call(env)
|
10
|
-
|
10
|
+
pvm_glob = Pathname.glob(env[:machine].box.directory.join('*.pvm')).first
|
11
|
+
# TODO: Handle error cases better, throw a Vagrant error and not a stack trace etc.
|
12
|
+
pvm_file = File.realpath pvm_glob.to_s
|
11
13
|
|
12
|
-
unless env[:machine].provider.driver.registered?(pvm_file
|
14
|
+
unless env[:machine].provider.driver.registered?(pvm_file)
|
13
15
|
env[:machine].provider.driver.register(pvm_file.to_s)
|
14
16
|
end
|
15
17
|
# Call the next if we have one (but we shouldn't, since this
|
@@ -106,8 +106,17 @@ module VagrantPlugins
|
|
106
106
|
@env[:ui].info(I18n.t("vagrant.actions.vm.share_folders.mounting_entry",
|
107
107
|
:guest_path => data[:guestpath]))
|
108
108
|
|
109
|
-
#
|
110
|
-
|
109
|
+
# Dup the data so we can pass it to the guest API
|
110
|
+
data = data.dup
|
111
|
+
|
112
|
+
# Calculate the owner and group
|
113
|
+
ssh_info = @env[:machine].ssh_info
|
114
|
+
data[:owner] ||= ssh_info[:username]
|
115
|
+
data[:group] ||= ssh_info[:username]
|
116
|
+
|
117
|
+
# Mount the actual folder
|
118
|
+
@env[:machine].guest.capability(
|
119
|
+
:mount_parallels_shared_folder, id, data[:guestpath], data)
|
111
120
|
else
|
112
121
|
# If no guest path is specified, then automounting is disabled
|
113
122
|
@env[:ui].info(I18n.t("vagrant.actions.vm.share_folders.nomount_entry",
|
@@ -7,12 +7,14 @@ module VagrantPlugins
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def call(env)
|
10
|
-
|
10
|
+
template_path = File.realpath(Pathname.glob(
|
11
11
|
env[:machine].box.directory.join('*.pvm')
|
12
|
-
).first
|
12
|
+
).first)
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
template_uuid = env[:machine].provider.driver.read_all_paths[template_path]
|
15
|
+
|
16
|
+
if env[:machine].provider.driver.registered?(template_path)
|
17
|
+
env[:machine].provider.driver.unregister(template_uuid)
|
16
18
|
end
|
17
19
|
# Call the next if we have one (but we shouldn't, since this
|
18
20
|
# middleware is built to run with the Call-type middlewares)
|
@@ -76,8 +76,9 @@ module VagrantPlugins
|
|
76
76
|
end
|
77
77
|
|
78
78
|
b2.use Call, GracefulHalt, :stopped, :running do |env2, b3|
|
79
|
-
|
80
|
-
|
79
|
+
if !env2[:result]
|
80
|
+
b3.use ForcedHalt
|
81
|
+
end
|
81
82
|
end
|
82
83
|
else
|
83
84
|
b2.use MessageNotCreated
|
@@ -139,16 +140,14 @@ module VagrantPlugins
|
|
139
140
|
# suspended machines.
|
140
141
|
def self.action_resume
|
141
142
|
Vagrant::Action::Builder.new.tap do |b|
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
b2.use MessageNotCreated
|
151
|
-
end
|
143
|
+
b.use CheckParallels
|
144
|
+
b.use Call, Created do |env, b2|
|
145
|
+
if env[:result]
|
146
|
+
b2.use CheckAccessible
|
147
|
+
b2.use EnvSet, :port_collision_repair => false
|
148
|
+
b2.use Resume
|
149
|
+
else
|
150
|
+
b2.use MessageNotCreated
|
152
151
|
end
|
153
152
|
end
|
154
153
|
end
|
@@ -41,27 +41,27 @@ module VagrantPlugins
|
|
41
41
|
read_settings(@uuid).fetch('State', 'inaccessible').to_sym
|
42
42
|
end
|
43
43
|
|
44
|
-
# Returns a hash of all UUIDs
|
45
|
-
# known by Parallels.
|
44
|
+
# Returns a hash of all UUIDs assigned to VMs and templates currently
|
45
|
+
# known by Parallels. Keys are 'name' values
|
46
46
|
#
|
47
47
|
# @return [Hash]
|
48
|
-
def
|
48
|
+
def read_all_names
|
49
49
|
list = {}
|
50
|
-
|
51
|
-
list[item.fetch('
|
50
|
+
read_all_info.each do |item|
|
51
|
+
list[item.fetch('Name')] = item.fetch('ID')
|
52
52
|
end
|
53
53
|
|
54
54
|
list
|
55
55
|
end
|
56
56
|
|
57
|
-
# Returns a hash of all UUIDs
|
58
|
-
# known by Parallels.
|
57
|
+
# Returns a hash of all UUIDs assigned to VMs and templates currently
|
58
|
+
# known by Parallels. Keys are 'Home' directories
|
59
59
|
#
|
60
60
|
# @return [Hash]
|
61
|
-
def
|
61
|
+
def read_all_paths
|
62
62
|
list = {}
|
63
|
-
|
64
|
-
list[item.fetch('
|
63
|
+
read_all_info.each do |item|
|
64
|
+
list[File.realpath item.fetch('Home')] = item.fetch('ID')
|
65
65
|
end
|
66
66
|
|
67
67
|
list
|
@@ -75,18 +75,24 @@ module VagrantPlugins
|
|
75
75
|
#
|
76
76
|
# This should raise a VagrantError if things are not ready.
|
77
77
|
def verify!
|
78
|
+
# TODO: Use version method?
|
78
79
|
execute('--version')
|
79
80
|
end
|
80
81
|
|
82
|
+
def version
|
83
|
+
raw_version = execute('--version', retryable: true)
|
84
|
+
raw_version.gsub('/prlctl version /', '')
|
85
|
+
end
|
86
|
+
|
81
87
|
def clear_shared_folders
|
82
88
|
read_settings.fetch("Host Shared Folders", {}).keys.drop(1).each do |folder|
|
83
89
|
execute("set", @uuid, "--shf-host-del", folder)
|
84
90
|
end
|
85
91
|
end
|
86
92
|
|
87
|
-
def import(
|
93
|
+
def import(template_uuid, vm_name)
|
88
94
|
last = 0
|
89
|
-
execute("clone",
|
95
|
+
execute("clone", template_uuid, '--name', vm_name) do |type, data|
|
90
96
|
lines = data.split("\r")
|
91
97
|
# The progress of the import will be in the last line. Do a greedy
|
92
98
|
# regular expression to find what we're looking for.
|
@@ -139,8 +145,10 @@ module VagrantPlugins
|
|
139
145
|
execute("unregister", uuid)
|
140
146
|
end
|
141
147
|
|
142
|
-
def registered?(
|
143
|
-
|
148
|
+
def registered?(path)
|
149
|
+
# TODO: Make this take UUID and have callers pass that instead
|
150
|
+
# Need a way to get the UUID from unregistered templates though (config.pvs XML parsing/regex?)
|
151
|
+
read_all_paths.has_key?(path)
|
144
152
|
end
|
145
153
|
|
146
154
|
def set_mac_address(mac)
|
@@ -162,10 +170,6 @@ module VagrantPlugins
|
|
162
170
|
end
|
163
171
|
end
|
164
172
|
|
165
|
-
def symlink(id, path)
|
166
|
-
guest_execute('ln', '-sf', "/media/psf/#{id}", path)
|
167
|
-
end
|
168
|
-
|
169
173
|
def execute_command(command)
|
170
174
|
raw(*command)
|
171
175
|
end
|
@@ -186,6 +190,17 @@ module VagrantPlugins
|
|
186
190
|
|
187
191
|
private
|
188
192
|
|
193
|
+
# Parse the JSON from *all* VMs and templates. Then return an array of objects (without duplicates)
|
194
|
+
def read_all_info
|
195
|
+
vms_arr = json({}) do
|
196
|
+
execute('list', '--info', '--json', retryable: true).gsub(/^(INFO)?/, '')
|
197
|
+
end
|
198
|
+
templates_arr = json({}) do
|
199
|
+
execute('list', '--info', '--json', '--template', retryable: true).gsub(/^(INFO)?/, '')
|
200
|
+
end
|
201
|
+
vms_arr | templates_arr
|
202
|
+
end
|
203
|
+
|
189
204
|
def read_settings(uuid=nil)
|
190
205
|
uuid ||= @uuid
|
191
206
|
json({}) { execute('list', uuid, '--info', '--json', retryable: true).gsub(/^(INFO)?\[/, '').gsub(/\]$/, '') }
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Parallels
|
3
|
+
module GuestDarwinCap
|
4
|
+
class MountParallelsSharedFolder
|
5
|
+
|
6
|
+
def self.mount_parallels_shared_folder(machine, name, guestpath, options)
|
7
|
+
machine.communicate.tap do |comm|
|
8
|
+
# clear prior symlink
|
9
|
+
if comm.test("test -L \"#{guestpath}\"", :sudo => true)
|
10
|
+
comm.sudo("rm \"#{guestpath}\"")
|
11
|
+
end
|
12
|
+
|
13
|
+
# clear prior directory if exists
|
14
|
+
if comm.test("test -d \"#{guestpath}\"", :sudo => true)
|
15
|
+
comm.sudo("rm -Rf \"#{guestpath}\"")
|
16
|
+
end
|
17
|
+
|
18
|
+
# create intermediate directories if needed
|
19
|
+
intermediate_dir = File.dirname(guestpath)
|
20
|
+
if !comm.test("test -d \"#{intermediate_dir}\"", :sudo => true)
|
21
|
+
comm.sudo("mkdir -p \"#{intermediate_dir}\"")
|
22
|
+
end
|
23
|
+
|
24
|
+
# finally make the symlink
|
25
|
+
comm.sudo("ln -s \"/Volumes/SharedFolders/#{name}\" \"#{guestpath}\"")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module VagrantPlugins
|
2
|
+
module Parallels
|
3
|
+
module GuestLinuxCap
|
4
|
+
class MountParallelsSharedFolder
|
5
|
+
|
6
|
+
def self.mount_parallels_shared_folder(machine, name, guestpath, options)
|
7
|
+
machine.communicate.tap do |comm|
|
8
|
+
# clear prior symlink
|
9
|
+
if comm.test("test -L \"#{guestpath}\"", :sudo => true)
|
10
|
+
comm.sudo("rm \"#{guestpath}\"")
|
11
|
+
end
|
12
|
+
|
13
|
+
# clear prior directory if exists
|
14
|
+
if comm.test("test -d \"#{guestpath}\"", :sudo => true)
|
15
|
+
comm.sudo("rm -Rf \"#{guestpath}\"")
|
16
|
+
end
|
17
|
+
|
18
|
+
# create intermediate directories if needed
|
19
|
+
intermediate_dir = File.dirname(guestpath)
|
20
|
+
if !comm.test("test -d \"#{intermediate_dir}\"", :sudo => true)
|
21
|
+
comm.sudo("mkdir -p \"#{intermediate_dir}\"")
|
22
|
+
end
|
23
|
+
|
24
|
+
# finally make the symlink
|
25
|
+
comm.sudo("ln -s \"/media/psf/#{name}\" \"#{guestpath}\"")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require "vagrant"
|
2
|
-
|
3
1
|
begin
|
4
2
|
require "vagrant"
|
5
3
|
rescue LoadError
|
@@ -70,6 +68,17 @@ module VagrantPlugins
|
|
70
68
|
# require File.expand_path("../config", __FILE__)
|
71
69
|
# Config
|
72
70
|
# end
|
71
|
+
|
72
|
+
guest_capability(:darwin, :mount_parallels_shared_folder) do
|
73
|
+
require_relative "guest_cap/darwin/mount_parallels_shared_folder"
|
74
|
+
GuestDarwinCap::MountParallelsSharedFolder
|
75
|
+
end
|
76
|
+
|
77
|
+
guest_capability(:linux, :mount_parallels_shared_folder) do
|
78
|
+
require_relative "guest_cap/linux/mount_parallels_shared_folder"
|
79
|
+
GuestLinuxCap::MountParallelsSharedFolder
|
80
|
+
end
|
81
|
+
|
73
82
|
end
|
74
83
|
|
75
84
|
module Driver
|
data/vagrant-parallels.gemspec
CHANGED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-parallels
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3
|
5
|
-
prerelease: 6
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Youssef Shahin
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-09-
|
12
|
+
date: 2013-09-26 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: bundler
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ~>
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ~>
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rake
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: rspec-core
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ~>
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ~>
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: rspec-expectations
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ~>
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ~>
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: rspec-mocks
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ~>
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :development
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ~>
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -131,6 +120,8 @@ files:
|
|
131
120
|
- lib/vagrant-parallels/action.rb
|
132
121
|
- lib/vagrant-parallels/driver/prl_ctl.rb
|
133
122
|
- lib/vagrant-parallels/errors.rb
|
123
|
+
- lib/vagrant-parallels/guest_cap/darwin/mount_parallels_shared_folder.rb
|
124
|
+
- lib/vagrant-parallels/guest_cap/linux/mount_parallels_shared_folder.rb
|
134
125
|
- lib/vagrant-parallels/plugin.rb
|
135
126
|
- lib/vagrant-parallels/provider.rb
|
136
127
|
- lib/vagrant-parallels/version.rb
|
@@ -146,26 +137,26 @@ files:
|
|
146
137
|
homepage: http://github.com/yshahin/vagrant-parallels
|
147
138
|
licenses:
|
148
139
|
- MIT
|
140
|
+
metadata: {}
|
149
141
|
post_install_message:
|
150
142
|
rdoc_options: []
|
151
143
|
require_paths:
|
152
|
-
-
|
144
|
+
- lib
|
153
145
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
146
|
requirements:
|
156
147
|
- - ! '>='
|
157
148
|
- !ruby/object:Gem::Version
|
158
149
|
version: '0'
|
159
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
151
|
requirements:
|
162
152
|
- - ! '>='
|
163
153
|
- !ruby/object:Gem::Version
|
164
154
|
version: 1.3.6
|
165
155
|
requirements: []
|
166
156
|
rubyforge_project: vagrant-parallels
|
167
|
-
rubygems_version: 1.
|
157
|
+
rubygems_version: 2.1.4
|
168
158
|
signing_key:
|
169
|
-
specification_version:
|
159
|
+
specification_version: 4
|
170
160
|
summary: Enables Vagrant to manage Parallels machines.
|
171
161
|
test_files: []
|
162
|
+
has_rdoc:
|