vagrant-hostmanager 1.2.0 → 1.2.1

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.
@@ -14,17 +14,29 @@ module VagrantPlugins
14
14
  # upload modified file and remove temporary file
15
15
  machine.communicate.upload(file, '/tmp/hosts')
16
16
  machine.communicate.sudo('mv /tmp/hosts /etc/hosts')
17
- FileUtils.rm(file)
17
+ # i have no idea if this is a windows competibility issue or not, but sometimes it dosen't work on my machine
18
+ begin
19
+ FileUtils.rm(file)
20
+ rescue Exception => e
21
+ end
18
22
  end
19
23
 
20
24
  def update_host
21
25
  # copy and modify hosts file on host with Vagrant-managed entries
22
26
  file = @global_env.tmp_path.join('hosts.local')
23
- FileUtils.cp('/etc/hosts', file)
27
+ # add a "if windows..."
28
+ hosts_location = '/etc/hosts'
29
+ copy_cmd = 'sudo cp'
30
+ # handles the windows hosts file...
31
+ if ENV['OS'] == 'Windows_NT'
32
+ hosts_location = "#{ENV['WINDIR']}\\System32\\drivers\\etc\\hosts"
33
+ copy_cmd = 'cp'
34
+ end
35
+ FileUtils.cp(hosts_location, file)
24
36
  update_file(file)
25
37
 
26
38
  # copy modified file using sudo for permission
27
- `sudo cp #{file} /etc/hosts`
39
+ `#{copy_cmd} #{file} #{hosts_location}`
28
40
  end
29
41
 
30
42
  private
@@ -32,6 +44,7 @@ module VagrantPlugins
32
44
  def update_file(file)
33
45
  # build array of host file entries from Vagrant configuration
34
46
  entries = []
47
+ ids = []
35
48
  get_machines.each do |name, p|
36
49
  if @provider == p
37
50
  machine = @global_env.machine(name, p)
@@ -40,6 +53,7 @@ module VagrantPlugins
40
53
  ip = get_ip_address(machine)
41
54
  aliases = machine.config.hostmanager.aliases.join(' ').chomp
42
55
  entries << "#{ip}\t#{host} #{aliases}\t# VAGRANT ID: #{id}\n"
56
+ ids << id unless ids.include?(id)
43
57
  end
44
58
  end
45
59
 
@@ -47,7 +61,7 @@ module VagrantPlugins
47
61
  begin
48
62
  # copy each line not managed by Vagrant
49
63
  File.open(file).each_line do |line|
50
- tmp_file << line unless line =~ /# VAGRANT ID:/
64
+ tmp_file << line unless ids.any? { |id| line =~ /# VAGRANT ID: #{id}/ }
51
65
  end
52
66
 
53
67
  # write a line for each Vagrant-managed entry
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module HostManager
3
- VERSION = '1.2.0'
3
+ VERSION = '1.2.1'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-hostmanager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-22 00:00:00.000000000 Z
12
+ date: 2013-09-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &9183860 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '1.3'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *9183860
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rake
27
- requirement: &9190520 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *9190520
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  description: A Vagrant plugin that manages the /etc/hosts file within a multi-machine
37
47
  environment
38
48
  email:
@@ -82,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
92
  version: '0'
83
93
  requirements: []
84
94
  rubyforge_project:
85
- rubygems_version: 1.8.11
95
+ rubygems_version: 1.8.23
86
96
  signing_key:
87
97
  specification_version: 3
88
98
  summary: A Vagrant plugin that manages the /etc/hosts file within a multi-machine