vagrant-vbguest 0.6.0.pre1 → 0.6.0.pre2

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.
@@ -2,6 +2,8 @@ require 'vagrant'
2
2
  require "vagrant-vbguest/errors"
3
3
  require 'vagrant-vbguest/helpers'
4
4
 
5
+ require 'vagrant-vbguest/machine'
6
+
5
7
  require 'vagrant-vbguest/installer'
6
8
  require 'vagrant-vbguest/installers/base'
7
9
  require 'vagrant-vbguest/installers/linux'
@@ -11,22 +11,44 @@ module VagrantVbguest
11
11
  # by this environment.
12
12
  def execute
13
13
  options = {
14
+ :_method => :run,
15
+ :_rebootable => true,
14
16
  :auto_reboot => false
15
17
  }
16
18
  opts = OptionParser.new do |opts|
17
- opts.banner = "Usage: vagrant vbguest [vm-name] [-f|--force] [--auto-reboot] [-I|--no-install] [-R|--no-remote] [--iso VBoxGuestAdditions.iso]"
19
+ opts.banner = "Usage: vagrant vbguest [vm-name] [--do start|rebuild|install] [--status] [-f|--force] [-b|--auto-reboot] [-R|--no-remote] [--iso VBoxGuestAdditions.iso]"
18
20
  opts.separator ""
19
21
 
20
- opts.on("-f", "--force", "Whether to force the installation") do
21
- options[:force] = true
22
+ opts.on("--do COMMAND", [:start, :rebuild, :install], "Manually `start`, `rebuild` or `install` GueastAdditions.") do |command|
23
+ options[:_method] = command
22
24
  end
23
25
 
24
- opts.on("--auto-reboot", "Reboot VM after installation") do
25
- options[:auto_reboot] = true
26
+ opts.on("--status", "Print current GuestAdditions status and exit.") do
27
+ options[:_method] = :status
28
+ options[:_rebootable] = false
29
+ end
30
+
31
+ # opts.on("--start", "Try to start the GuestAdditions servcice manually.") do
32
+ # options[:_method] = :start
33
+ # options[:_rebootable] = false
34
+ # end
35
+
36
+ # opts.on("--rebuild", "Rebuild the existing GuestAdditions.") do
37
+ # options[:_method] = :rebuild
38
+ # options[:force] = true
39
+ # end
40
+
41
+ # opts.on("--install", "Install GuestAdditions matching your host system.") do
42
+ # options[:_method] = :install
43
+ # options[:force] = true
44
+ # end
45
+
46
+ opts.on("-f", "--force", "Whether to force the installation. (Implied by --install and --rebuild)") do
47
+ options[:force] = true
26
48
  end
27
49
 
28
- opts.on("--no-install", "-I", "Only check for the installed version. Do not attempt to install anything") do
29
- options[:no_install] = true
50
+ opts.on("--auto-reboot", "-b", "Allow rebooting the VM after installation. (when GuestAdditions won't start)") do
51
+ options[:auto_reboot] = true
30
52
  end
31
53
 
32
54
  opts.on("--no-remote", "-R", "Do not attempt do download the iso file from a webserver") do
@@ -40,6 +62,7 @@ module VagrantVbguest
40
62
  build_start_options(opts, options)
41
63
  end
42
64
 
65
+
43
66
  argv = parse_options(opts)
44
67
  return if !argv
45
68
 
@@ -57,10 +80,21 @@ module VagrantVbguest
57
80
 
58
81
  # Executes a command on a specific VM.
59
82
  def execute_on_vm(vm, options)
83
+ options = options.clone
84
+ _method = options.delete(:_method)
85
+ _rebootable = options.delete(:_rebootable)
86
+
87
+
60
88
  options = vm.config.vbguest.to_hash.merge(options)
61
- installer = VagrantVbguest::Installer.new(vm, options)
62
- installer.run!
63
- reboot(vm, options) if installer.need_reboot?
89
+ machine = VagrantVbguest::Machine.new(vm, options)
90
+ status = machine.state
91
+ vm.ui.send (:ok == status ? :success : :warn), I18n.t("vagrant.plugins.vbguest.status.#{status}", machine.info)
92
+
93
+ if _method != :status
94
+ machine.send(_method)
95
+ end
96
+
97
+ reboot(vm, options) if _rebootable && machine.reboot?
64
98
  end
65
99
 
66
100
  def reboot vm, options
@@ -69,4 +103,5 @@ module VagrantVbguest
69
103
  end
70
104
  end
71
105
  end
106
+
72
107
  end
@@ -8,10 +8,12 @@ module VagrantVbguest
8
8
  end
9
9
 
10
10
  def reboot(vm, options)
11
- if options[:auto_reboot]
11
+ if rebooted?(vm)
12
+ vm.ui.error(I18n.t("vagrant.plugins.vbguest.restart_loop_guard_activated"))
13
+ false
14
+ elsif options[:auto_reboot]
12
15
  vm.ui.warn(I18n.t("vagrant.plugins.vbguest.restart_vm"))
13
16
  @@rebooted[vm.name] = true
14
- true
15
17
  else
16
18
  @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.suggest_restart", :name => vm.name))
17
19
  false
@@ -46,46 +46,24 @@ module VagrantVbguest
46
46
  end
47
47
 
48
48
  def initialize(vm, options = {})
49
+ @vm = vm
50
+ @options = options
51
+ @iso_path = nil
49
52
  @env = {
50
53
  :ui => vm.ui,
51
54
  :tmp_path => vm.env.tmp_path
52
55
  }
53
- @vm = vm
54
- @iso_path = nil
55
- @options = options
56
- end
57
-
58
- def run!
59
- @options[:auto_update] = true
60
- run
61
- end
62
-
63
- def run
64
- return unless @options[:auto_update]
65
-
66
- raise Vagrant::Errors::VMNotCreatedError if !@vm.created?
67
- raise Vagrant::Errors::VMInaccessible if !@vm.state == :inaccessible
68
- raise Vagrant::Errors::VMNotRunningError if @vm.state != :running
69
-
70
- @vm.ui.success(I18n.t("vagrant.plugins.vbguest.guest_ok", :version => guest_version)) unless needs_update?
71
- @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.check_failed", :host => vb_version, :guest => guest_version)) if @options[:no_install]
72
-
73
- if @options[:force] || (!@options[:no_install] && needs_update?)
74
- @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.installing#{@options[:force] ? '_forced' : ''}", :host => vb_version, :guest => guest_version))
75
- install
76
- end
77
- ensure
78
- cleanup
79
56
  end
80
57
 
81
58
  def install
82
59
  installer = guest_installer
83
60
  raise NoInstallerFoundError, :method => 'install' if !installer
84
61
 
85
- # @vm.ui.info "Installing using #{installer.class.to_s}"
86
62
  installer.install do |type, data|
87
63
  @vm.ui.info(data, :prefix => false, :new_line => false)
88
64
  end
65
+ ensure
66
+ cleanup
89
67
  end
90
68
 
91
69
  def rebuild
@@ -97,47 +75,31 @@ module VagrantVbguest
97
75
  end
98
76
  end
99
77
 
100
- def needs_rebuild?
78
+ def start
101
79
  installer = guest_installer
102
- raise NoInstallerFoundError, :method => 'check installation of' if !installer
80
+ raise NoInstallerFoundError, :method => 'manual start' if !installer
103
81
 
104
- installer.needs_rebuild?
82
+ installer.start do |type, data|
83
+ @vm.ui.info(data, :prefix => false, :new_line => false)
84
+ end
105
85
  end
106
86
 
107
- def need_reboot?
87
+ def guest_version(reload=false)
108
88
  installer = guest_installer
109
89
  raise NoInstallerFoundError, :method => 'check installation of' if !installer
110
-
111
- installer.need_reboot?
90
+ installer.guest_version(reload)
112
91
  end
113
92
 
114
- def needs_update?
115
- !(guest_version && vb_version == guest_version)
116
- end
117
-
118
- ##
119
- #
120
- # @return [String] The version code of the VirtualBox Guest Additions
121
- # available on the guest, or `nil` if none installed.
122
- def guest_version
123
- return @guest_version if @guest_version
124
-
125
- guest_version = @vm.driver.read_guest_additions_version
126
- guest_version = !guest_version ? nil : guest_version.gsub(/[-_]ose/i, '')
127
-
128
- @vm.channel.sudo('VBoxService --version', :error_check => false) do |type, data|
129
- if (v = data.to_s.match(/^(\d+\.\d+.\d+)/)) && guest_version != v[1]
130
- @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.guest_version_reports_differ", :driver => guest_version, :service => v[1]))
131
- guest_version = v[1]
132
- end
133
- end
134
-
135
- @guest_version = guest_version
93
+ def host_version
94
+ installer = guest_installer
95
+ raise NoInstallerFoundError, :method => 'check installation of' if !installer
96
+ installer.host_version
136
97
  end
137
98
 
138
- # Returns the version code of the Virtual Box *host*
139
- def vb_version
140
- @vm.driver.version
99
+ def running?
100
+ installer = guest_installer
101
+ raise NoInstallerFoundError, :method => 'check installation of' if !installer
102
+ installer.running?
141
103
  end
142
104
 
143
105
  # Returns an installer instance for the current vm
@@ -146,6 +108,10 @@ module VagrantVbguest
146
108
  #
147
109
  # @return [Installers::Base]
148
110
  def guest_installer
111
+ raise Vagrant::Errors::VMNotCreatedError if !@vm.created?
112
+ raise Vagrant::Errors::VMInaccessible if !@vm.state == :inaccessible
113
+ raise Vagrant::Errors::VMNotRunningError if @vm.state != :running
114
+
149
115
  @guest_installer ||= if @options[:installer].is_a? Class
150
116
  @options[:installer].new(@vm)
151
117
  else
@@ -24,7 +24,7 @@ module VagrantVbguest
24
24
  false
25
25
  end
26
26
 
27
- attr_reader :vm
27
+ attr_reader :vm, :options
28
28
 
29
29
  def initialize(vm, options=nil)
30
30
  @vm = vm
@@ -60,9 +60,9 @@ module VagrantVbguest
60
60
  def install(iso_fileO=nil, opts=nil, &block)
61
61
  end
62
62
 
63
- # Handels the rebuild of allready installed GuestAdditions
63
+ # Handels the rebuild of allready running GuestAdditions
64
64
  # It may happen, that the guest has the correct GuestAdditions
65
- # version installed, but not the kernel module is not loaded.
65
+ # version running, but not the kernel module is not running.
66
66
  # This method should perform a rebuild or try to reload the
67
67
  # kernel module _without_ the GuestAdditions iso file.
68
68
  # If there is no way of rebuidling or reloading the
@@ -77,6 +77,22 @@ module VagrantVbguest
77
77
  def rebuild(opts=nil, &block)
78
78
  end
79
79
 
80
+ # Restarts the allready installed GuestAdditions
81
+ # It may happen, that the guest has the correct GuestAdditions
82
+ # version installed, but for some reason are not (yet) runnig.
83
+ # This method should execute the GuestAdditions system specific
84
+ # init script in order to start it manually.
85
+ # If there is no way of doing this on a specific system,
86
+ # this method should left empty.
87
+ # Subclasses should override this method.
88
+ #
89
+ # @param [Hash] opts Optional options Hash wich meight get passed to {Vagrant::Communication::SSH#execute} and firends
90
+ # @yield [type, data] Takes a Block like {Vagrant::Communication::Base#execute} for realtime output of the command being executed
91
+ # @yieldparam [String] type Type of the output, `:stdout`, `:stderr`, etc.
92
+ # @yieldparam [String] data Data for the given output.
93
+ def start(opts=nil, &block)
94
+ end
95
+
80
96
  # Determinates if the GuestAdditions kernel module is loaded.
81
97
  # This method tests if there is a working GuestAdditions
82
98
  # kernel module. If there is none, {#rebuild} is beeing called.
@@ -86,33 +102,71 @@ module VagrantVbguest
86
102
  # Subclasses should override this method.
87
103
  #
88
104
  # @return [Boolean] `true` if the kernel module is loaded (and thus seems to work), `false` otherwise.
89
- def installed?(opts=nil, &block)
105
+ def running?(opts=nil, &block)
90
106
  true
91
107
  end
92
108
 
93
- def needs_rebuild?(opts=nil, &block)
94
- !installed?(opts, &block)
109
+ # Determinates the GuestAdditions version installed on the
110
+ # guest system.
111
+ #
112
+ # @param [Boolean] reload Whether to read the value again or use
113
+ # the cached value form an erlier call.
114
+ # @return [String] The version code of the VirtualBox Guest Additions
115
+ # available on the guest, or `nil` if none installed.
116
+ def guest_version(reload=false)
117
+ return @guest_version if @guest_version && !reload
118
+
119
+ guest_version = vm.driver.read_guest_additions_version
120
+ guest_version = !guest_version ? nil : guest_version.gsub(/[-_]ose/i, '')
121
+
122
+ @guest_version = guest_version
123
+ end
124
+
125
+ # Determinates the host's version
126
+ #
127
+ # @return [String] The version code of the Virtual Box *host*
128
+ def host_version
129
+ vm.driver.version
95
130
  end
96
131
 
97
- def need_reboot?(opts=nil, &block)
98
- !installed?(opts, &block)
132
+ def installer_version(path_to_installer)
133
+ version = nil
134
+ @vm.channel.sudo("#{path_to_installer} --info", :error_check => false) do |type, data|
135
+ if (v = data.to_s.match(/\AIdentification.*\s(\d+\.\d+.\d+)/i))
136
+ version = v[1]
137
+ end
138
+ end
139
+ version
140
+ end
141
+
142
+ def yield_installation_waring(path_to_installer)
143
+ @vm.ui.warn I18n.t("vagrant.plugins.vbguest.installing#{@options[:force] ? '_forced' : ''}",
144
+ :guest_version => guest_version,
145
+ :installer_version => installer_version(path_to_installer) || "unknown")
146
+ end
147
+
148
+ def yield_rebuild_warning
149
+ @vm.ui.warn I18n.t("vagrant.plugins.vbguest.rebuild#{@options[:force] ? '_forced' : ''}",
150
+ :guest_version => guest_version(true),
151
+ :host_version => host_version)
99
152
  end
100
153
 
101
154
  def iso_file
102
155
  @iso_file ||= begin
103
- iso_path = @options[:iso_path] || local_iso_path
156
+ iso_path = options[:iso_path] || local_iso_path
104
157
 
105
- if !iso_path || iso_path.empty? && !@options[:no_remote]
106
- iso_path = VagrantVbguest::Helpers.web_iso_path_for @vm, @options
158
+ if !iso_path || iso_path.empty? && !options[:no_remote]
159
+ iso_path = VagrantVbguest::Helpers.web_iso_path_for vm, options
107
160
  end
108
161
  raise VagrantVbguest::IsoPathAutodetectionError if !iso_path || iso_path.empty?
109
162
 
110
- iso_path.gsub! '$VBOX_VERSION', vm.driver.version
163
+ version = host_version
164
+ iso_path = iso_path.gsub('$VBOX_VERSION', version) % {:version => version}
111
165
  if Vagrant::Downloaders::File.match? iso_path
112
166
  iso_path
113
167
  else
114
168
  # :TODO: This will also raise, if the iso_url points to an invalid local path
115
- raise VagrantVbguest::DownloadingDisabledError.new(:from => iso_url) if @options[:no_remote]
169
+ raise VagrantVbguest::DownloadingDisabledError.new(:from => iso_url) if options[:no_remote]
116
170
  env = {
117
171
  :ui => vm.ui,
118
172
  :tmp_path => vm.env.tmp_path,
@@ -125,18 +179,14 @@ module VagrantVbguest
125
179
  end
126
180
  end
127
181
 
128
- def local_iso?
129
- ::File.file?(@env[:iso_url])
182
+ def web_iso_path
183
+ "http://download.virtualbox.org/virtualbox/%{version}/VBoxGuestAdditions_%{version}.iso"
130
184
  end
131
185
 
132
186
  def local_iso_path
133
187
  media_manager_iso || guess_iso
134
188
  end
135
189
 
136
- def web_iso_path
137
- "http://download.virtualbox.org/virtualbox/$VBOX_VERSION/VBoxGuestAdditions_$VBOX_VERSION.iso"
138
- end
139
-
140
190
  def media_manager_iso
141
191
  (m = vm.driver.execute('list', 'dvds').match(/^.+:\s+(.*VBoxGuestAdditions.iso)$/i)) && m[1]
142
192
  end
@@ -166,8 +216,7 @@ module VagrantVbguest
166
216
  # from the guest
167
217
  def cleanup
168
218
  @download.cleanup if @download
169
-
170
- vm.channel.execute("rm #{tmp_path}", :error_check => false) do |type, data|
219
+ vm.channel.execute("test -f #{tmp_path} && rm #{tmp_path}", :error_check => false) do |type, data|
171
220
  vm.ui.error(data.chomp, :prefix => false)
172
221
  end
173
222
  end
@@ -17,7 +17,12 @@ module VagrantVbguest
17
17
  end
18
18
  upload(iso_file)
19
19
  vm.channel.sudo("mount #{tmp_path} -o loop #{mount_point}", opts, &block)
20
- vm.channel.sudo("#{mount_point}/VBoxLinuxAdditions.run --nox11", opts, &block)
20
+
21
+ installer = File.join(mount_point, 'VBoxLinuxAdditions.run')
22
+ yield_installation_waring(installer)
23
+
24
+ vm.channel.sudo("#{installer} --nox11", opts, &block)
25
+
21
26
  vm.channel.sudo("umount #{mount_point}", opts, &block)
22
27
  end
23
28
 
@@ -30,7 +35,7 @@ module VagrantVbguest
30
35
  packages = ['linux-headers-`uname -r`']
31
36
  # some Debian system (lenny) dont come with a dkms packe so we neet to skip that.
32
37
  # apt-cache search will exit with 0 even if nothing was found, so we need to grep.
33
- packages << 'dkmx' if vm.channel.test('apt-cache search --names-only \'^dkms$\' | grep dkms')
38
+ packages << 'dkms' if vm.channel.test('apt-cache search --names-only \'^dkms$\' | grep dkms')
34
39
  packages.join ' '
35
40
  end
36
41
  end
@@ -47,17 +47,37 @@ module VagrantVbguest
47
47
  vm.channel.sudo("umount #{mount_point}", opts, &block)
48
48
  end
49
49
 
50
- def installed?(opts=nil, &block)
50
+ def running?(opts=nil, &block)
51
51
  opts = {
52
52
  :sudo => true
53
53
  }.merge(opts || {})
54
54
  vm.channel.test('lsmod | grep vboxsf', opts, &block)
55
55
  end
56
56
 
57
+ # @return [String] The version code of the VirtualBox Guest Additions
58
+ # available on the guest, or `nil` if none installed.
59
+ def guest_version(reload = false)
60
+ return @guest_version if @guest_version && !reload
61
+ driver_version = super
62
+
63
+ @vm.channel.sudo('VBoxService --version', :error_check => false) do |type, data|
64
+ if (v = data.to_s.match(/^(\d+\.\d+.\d+)/)) && driver_version != v[1]
65
+ @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.guest_version_reports_differ", :driver => driver_version, :service => v[1]))
66
+ @guest_version = v[1]
67
+ end
68
+ end
69
+ end
70
+
71
+
57
72
  def rebuild(opts=nil, &block)
58
73
  vm.channel.sudo('/etc/init.d/vboxadd setup', opts, &block)
59
74
  end
60
75
 
76
+ def start(opts=nil, &block)
77
+ opts = {:error_check => false}.merge(opts || {})
78
+ vm.channel.sudo('/etc/init.d/vboxadd start', opts, &block)
79
+ end
80
+
61
81
  end
62
82
  end
63
83
  end
@@ -0,0 +1,83 @@
1
+ module VagrantVbguest
2
+ class Machine
3
+
4
+ require 'micromachine'
5
+
6
+ attr_reader :installer, :vm, :options
7
+
8
+ def initialize vm, options
9
+ @vm = vm
10
+ @options = options
11
+ @installer = Installer.new @vm, @options
12
+
13
+ @ga_machine = MicroMachine.new :pending
14
+ @ga_machine.when :install, :pending => :installed
15
+ @ga_machine.when :start, :pending => :started
16
+ @ga_machine.when :rebuild, :pending => :rebuilt, :started => :rebuilt
17
+
18
+ @ga_machine.on(:installed) { installer.install }
19
+ @ga_machine.on(:started) { installer.start }
20
+ @ga_machine.on(:rebuilt) { installer.rebuild }
21
+
22
+ @box_machine = MicroMachine.new :first_boot
23
+ @box_machine.when :reboot, :first_boot => :rebooted
24
+ end
25
+
26
+ def run
27
+ runlist = steps
28
+ current_state = state
29
+ while (command = runlist.shift)
30
+ self.send(command)
31
+ return run if current_state != state
32
+ end
33
+ end
34
+
35
+ def install
36
+ return @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.skiped_installation")) if options[:no_install] && !options[:force]
37
+ @ga_machine.trigger :install
38
+ end
39
+
40
+ def rebuild
41
+ return @vm.ui.warn(I18n.t("vagrant.plugins.vbguest.skiped_rebuild")) if options[:no_install] && !options[:force]
42
+ @ga_machine.trigger :rebuild
43
+ end
44
+
45
+ def start
46
+ @ga_machine.trigger :start
47
+ end
48
+
49
+ def installation_ran?; @ga_machine == :installed end
50
+ def started?; @ga_machine == :started end
51
+ def rebuilt?; @ga_machine == :rebuilt end
52
+
53
+ def reboot; @box_machine.trigger :reboot end
54
+ def reboot?; @box_machine.state == :rebooted end
55
+
56
+ def steps
57
+ case state
58
+ when :clean, :unmatched
59
+ [:install]
60
+ when :not_running
61
+ installation_ran? ? [:reboot] : [:start, :rebuild, :reboot]
62
+ else
63
+ []
64
+ end
65
+ end
66
+
67
+ def state
68
+ guest_version = installer.guest_version(true)
69
+
70
+ return :clean if !guest_version
71
+ return :unmatched if installer.host_version != guest_version
72
+ return :not_running if !installer.running?
73
+ return :ok
74
+ end
75
+
76
+ def info
77
+ {
78
+ :host_version => installer.host_version,
79
+ :guest_version => installer.guest_version
80
+ }
81
+ end
82
+ end
83
+ end
@@ -15,17 +15,13 @@ module VagrantVbguest
15
15
 
16
16
  def call(env)
17
17
  options = @vm.config.vbguest.to_hash
18
- installer = VagrantVbguest::Installer.new(@vm, options)
19
- installer.run
20
-
21
- if installer.need_reboot?
22
- if rebooted?(@vm)
23
- @vm.ui.error(I18n.t("vagrant.plugins.vbguest.restart_loop_guard_activated"))
24
- else
25
- reboot(@vm, options)
26
- end
18
+ if options[:auto_update]
19
+ machine = VagrantVbguest::Machine.new @vm, options
20
+ status = machine.state
21
+ @vm.ui.send (:ok == status ? :success : :warn), I18n.t("vagrant.plugins.vbguest.status.#{status}", machine.info)
22
+ machine.run
23
+ reboot(@vm, options) if machine.reboot?
27
24
  end
28
-
29
25
  @app.call(env)
30
26
  end
31
27
 
@@ -1,3 +1,3 @@
1
1
  module VagrantVbguest
2
- VERSION = "0.6.0.pre1"
2
+ VERSION = "0.6.0.pre2"
3
3
  end
@@ -2,12 +2,13 @@ en:
2
2
  vagrant:
3
3
  plugins:
4
4
  vbguest:
5
- guest_ok: "Detected Virtualbox Guest Additions %{version} --- OK."
6
- check_failed: "Virtualbox Guest Additions on host: %{host} - guest's version is %{guest}"
7
- installing: "Installing Virtualbox Guest Additions %{host} - guest's version is %{guest}"
8
- installing_forced: "Forcing installation of Virtualbox Guest Additions %{host} - guest's version is %{guest}"
5
+ skiped_installation: "Updating GuestAdditions skipped."
6
+ skiped_rebuild: "Rebuilding GuestAdditions skipped."
7
+ installing: "Installing Virtualbox Guest Additions %{installer_version} - guest's version is %{guest_version}"
8
+ installing_forced: "Forcing installation of Virtualbox Guest Additions %{installer_version} - guest's version is %{guest_version}"
9
+ rebuild: "Rebuilding Virtualbox Guest Additions %{guest_version} (Your host's version is %{host_version})"
10
+ rebuild_forced: "Forcing rebuilding of Virtualbox Guest Additions %{guest_version} (Your host's version is %{host_version})"
9
11
  start_copy_iso: "Copy iso file %{from} into the box %{to}"
10
- start_copy_script: "Copy installer file %{from} into the box %{to}"
11
12
  restart_vm: "Restarting VM to apply changes..."
12
13
  suggest_restart: "Guest Additions got installed. However, they seem not be loaded correctly. Please restart the box runing `vagrant reload %{name}`"
13
14
  restart_loop_guard_activated: "Guest Additions will not load, even after reboot."
@@ -17,6 +18,12 @@ en:
17
18
  VBoxService inside the vm claims: %{service}
18
19
  Going on, assuming VBoxService is correct...
19
20
 
21
+ status:
22
+ clean: "No installation found."
23
+ unmatched: "GuestAdditions versions on your host (%{host_version}) and guest (%{guest_version}) does not match."
24
+ not_running: "GuestAdditions seems to be installed (%{guest_version}) correctly, but don't run."
25
+ ok: "GuestAdditions %{guest_version} running --- OK."
26
+
20
27
  errors:
21
28
  autodetect_iso_path: |-
22
29
  Could not autodetect a local of the Virtualbox Guest Additions iso file.
@@ -19,8 +19,9 @@ Gem::Specification.new do |s|
19
19
  # specify any dependencies here; for example:
20
20
  # s.add_development_dependency "rspec"
21
21
  # s.add_runtime_dependency "rest-client"
22
+ s.add_runtime_dependency "micromachine"
22
23
 
23
- s.add_development_dependency "bundler", ">= 1.0.0"
24
+ s.add_development_dependency "bundler", ">= 1.2.0"
24
25
 
25
26
  s.files = `git ls-files`.split("\n")
26
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vbguest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0.pre1
4
+ version: 0.6.0.pre2
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-10 00:00:00.000000000 Z
12
+ date: 2012-12-22 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: micromachine
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: bundler
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -18,7 +34,7 @@ dependencies:
18
34
  requirements:
19
35
  - - ! '>='
20
36
  - !ruby/object:Gem::Version
21
- version: 1.0.0
37
+ version: 1.2.0
22
38
  type: :development
23
39
  prerelease: false
24
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +42,7 @@ dependencies:
26
42
  requirements:
27
43
  - - ! '>='
28
44
  - !ruby/object:Gem::Version
29
- version: 1.0.0
45
+ version: 1.2.0
30
46
  description: A Vagrant plugin which automatically installs the host's VirtualBox Guest
31
47
  Additions on the guest system.
32
48
  email:
@@ -41,8 +57,6 @@ files:
41
57
  - LICENSE
42
58
  - Rakefile
43
59
  - Readme.md
44
- - files/setup_debian.sh
45
- - files/setup_linux.sh
46
60
  - lib/vagrant-vbguest.rb
47
61
  - lib/vagrant-vbguest/command.rb
48
62
  - lib/vagrant-vbguest/config.rb
@@ -54,6 +68,7 @@ files:
54
68
  - lib/vagrant-vbguest/installers/debian.rb
55
69
  - lib/vagrant-vbguest/installers/linux.rb
56
70
  - lib/vagrant-vbguest/installers/ubuntu.rb
71
+ - lib/vagrant-vbguest/machine.rb
57
72
  - lib/vagrant-vbguest/middleware.rb
58
73
  - lib/vagrant-vbguest/version.rb
59
74
  - lib/vagrant_init.rb
@@ -1,12 +0,0 @@
1
- #!/bin/bash
2
- function do_install {
3
- apt-get install -y linux-headers-`uname -r` dkms
4
- }
5
-
6
- do_install || (apt-get update && do_install) || exit 1
7
-
8
- mount /tmp/VBoxGuestAdditions.iso -o loop /mnt
9
- /mnt/VBoxLinuxAdditions.run --nox11
10
- umount /mnt
11
-
12
- exit 0
@@ -1,4 +0,0 @@
1
- #!/bin/bash
2
- mount /tmp/VBoxGuestAdditions.iso -o loop /mnt
3
- /mnt/VBoxLinuxAdditions.run --nox11
4
- umount /mnt