vagrant-goodhosts 1.1.0beta → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/README.md +12 -1
- data/lib/vagrant-goodhosts/GoodHosts.rb +59 -44
- data/lib/vagrant-goodhosts/bundle/cli +0 -0
- data/lib/vagrant-goodhosts/bundle/cli.exe +0 -0
- data/lib/vagrant-goodhosts/bundle/cli_amd64_osx +0 -0
- data/lib/vagrant-goodhosts/bundle/cli_arm64_osx +0 -0
- data/lib/vagrant-goodhosts/version.rb +1 -1
- data/package.sh +4 -3
- data/vagrant-goodhosts.gemspec +2 -1
- metadata +11 -10
- data/lib/vagrant-goodhosts/bundle/cli_osx +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d9d571c66bee739daa440ff14420530877b8de9a54772960000c322a621a6dfc
|
4
|
+
data.tar.gz: 1da6af09b2600518c6bc98b46dfd788429408fd43cd22b652cedf699931eca5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6d3f083e720d58cadeab5a822bbe3eebfcc25adbe1e7bc695b6ad7bb81762d6a2dfe5851ab37580dfcde0bd194d07b78043d5abaa40e64d273d95fc0775b293
|
7
|
+
data.tar.gz: 2094f799367acc58696189954d1691564c7feb3d677fed5edca8ac760e34e819a0dd1313309eb90636b17117ef69c8b05e0195e4bb62c71486ce16cb27c2dc3e
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -24,6 +24,13 @@ To update the plugin:
|
|
24
24
|
vagrant plugin update vagrant-goodhosts
|
25
25
|
```
|
26
26
|
|
27
|
+
### Installation from Gem file
|
28
|
+
|
29
|
+
The gem file is released with every [release](https://github.com/goodhosts/vagrant/releases) and you can install it with vagrant as it is a plugin after all.
|
30
|
+
Affter downloading the file run this command to install manually:
|
31
|
+
|
32
|
+
`vagrant plugin install vagrant-goodhosts-*.gem`
|
33
|
+
|
27
34
|
## Usage
|
28
35
|
|
29
36
|
You currently only need the `hostname` and a `:private_network` network with a fixed IP address.
|
@@ -115,7 +122,7 @@ You have to open an elevated command prompt; hold `❖ Win` and press `X`, then
|
|
115
122
|
|
116
123
|
cacls %SYSTEMROOT%\system32\drivers\etc\hosts /E /G %USERNAME%:W
|
117
124
|
|
118
|
-
##
|
125
|
+
## Generate The Development Version
|
119
126
|
|
120
127
|
If you would like to install `vagrant-goodhosts` to make contributions or changes, run the following commands::
|
121
128
|
|
@@ -125,3 +132,7 @@ cd vagrant-goodhosts
|
|
125
132
|
./package.sh
|
126
133
|
vagrant plugin install vagrant-goodhosts-*.gem
|
127
134
|
```
|
135
|
+
|
136
|
+
## Test the plugin
|
137
|
+
|
138
|
+
You need to run a Vagrant machine with the minimum settings specified in the [Usage](https://github.com/goodhosts/vagrant#usage) section, it is enough a turn on and off and in the meantime if the hosts file in your machine is written in the right way.
|
@@ -48,7 +48,12 @@ module VagrantPlugins
|
|
48
48
|
if OS.windows?
|
49
49
|
return 'cli.exe'
|
50
50
|
elsif OS.mac?
|
51
|
-
|
51
|
+
type = system('uname -m')
|
52
|
+
if type == 'x86_64'
|
53
|
+
return 'cli_amd64_osx'
|
54
|
+
else
|
55
|
+
return 'cli_arm64_osx'
|
56
|
+
end
|
52
57
|
elsif OS.linux?
|
53
58
|
return 'cli'
|
54
59
|
else
|
@@ -104,30 +109,27 @@ module VagrantPlugins
|
|
104
109
|
rescue StandardError => _e
|
105
110
|
hostnames_to_add.append(hostname)
|
106
111
|
end
|
107
|
-
return hostnames_to_add
|
112
|
+
return hostnames_to_add.join(' ')
|
108
113
|
end
|
109
114
|
|
110
115
|
def add_goodhost_entries(ip_address, hostnames)
|
111
116
|
cli = get_cli
|
112
117
|
if cli.include? ".exe"
|
113
|
-
clean =
|
114
|
-
|
115
|
-
|
116
|
-
end
|
117
|
-
stdin, stdout, stderr, wait_thr = Open3.popen3("powershell", "-Command", "Start-Process '#{cli}' -ArgumentList \"add\",#{clean}\"#{ip_address}\",\"#{hostnames}\" -Verb RunAs")
|
118
|
+
clean = get_clean_parameter_by_system(ip_address, true)
|
119
|
+
command = "Start-Process '#{cli}' -ArgumentList \"add\",#{clean}\"#{ip_address}\",\"#{hostnames}\" -Verb RunAs"
|
120
|
+
stdin, stdout, stderr, wait_thr = Open3.popen3("powershell", "-Command", command)
|
118
121
|
else
|
119
|
-
clean =
|
120
|
-
|
121
|
-
|
122
|
-
end
|
123
|
-
stdin, stdout, stderr, wait_thr = Open3.popen3("sudo '#{cli}' add #{clean} #{ip_address} #{hostnames}")
|
122
|
+
clean = get_clean_parameter_by_system(ip_address, false)
|
123
|
+
command = "sudo '#{cli}' add #{clean} #{ip_address} #{hostnames}"
|
124
|
+
stdin, stdout, stderr, wait_thr = Open3.popen3(command)
|
124
125
|
end
|
125
|
-
return stdin, stdout, stderr, wait_thr
|
126
|
+
return stdin, stdout, stderr, wait_thr, command
|
126
127
|
end
|
127
128
|
|
128
129
|
def add_host_entries
|
129
130
|
error = false
|
130
|
-
error_text =
|
131
|
+
error_text = ''
|
132
|
+
command = ''
|
131
133
|
hostnames_by_ips = generate_hostnames_by_ips
|
132
134
|
|
133
135
|
return if hostnames_by_ips.none?
|
@@ -142,34 +144,35 @@ module VagrantPlugins
|
|
142
144
|
|
143
145
|
# filter out the hosts we've already added
|
144
146
|
hosts_to_add = check_hostnames_to_add(ip_address, hostnames)
|
145
|
-
next if hosts_to_add.
|
147
|
+
next if hosts_to_add.empty?
|
146
148
|
|
147
|
-
_stdin, _stdout, stderr, wait_thr = add_goodhost_entries(ip_address, hosts_to_add)
|
149
|
+
_stdin, _stdout, stderr, wait_thr, command = add_goodhost_entries(ip_address, hosts_to_add)
|
148
150
|
unless wait_thr.value.success?
|
149
151
|
error = true
|
150
152
|
error_text = stderr.read.strip
|
151
153
|
end
|
152
154
|
end
|
153
|
-
print_readme(error, error_text)
|
155
|
+
print_readme(error, error_text, command)
|
154
156
|
end
|
155
157
|
|
156
158
|
def remove_goodhost_entries(ip_address, hostnames)
|
157
159
|
cli = get_cli
|
158
|
-
clean = "\"--clean\","
|
159
|
-
if disable_clean(ip_address)
|
160
|
-
clean = ''
|
161
|
-
end
|
162
160
|
if cli.include? ".exe"
|
163
|
-
|
161
|
+
clean = get_clean_parameter_by_system(ip_address, true)
|
162
|
+
command = "Start-Process '#{cli}' -ArgumentList \"remove\",#{clean}\"#{ip_address}\",\"#{hostnames}\" -Verb RunAs"
|
163
|
+
stdin, stdout, stderr, wait_thr = Open3.popen3("powershell", "-Command", command)
|
164
164
|
else
|
165
|
-
|
165
|
+
clean = get_clean_parameter_by_system(ip_address, false)
|
166
|
+
command = "sudo '#{cli}' remove #{clean} #{ip_address} #{hostnames}"
|
167
|
+
stdin, stdout, stderr, wait_thr = Open3.popen3(command)
|
166
168
|
end
|
167
|
-
return stdin, stdout, stderr, wait_thr
|
169
|
+
return stdin, stdout, stderr, wait_thr, command
|
168
170
|
end
|
169
171
|
|
170
172
|
def remove_host_entries
|
171
173
|
error = false
|
172
|
-
error_text =
|
174
|
+
error_text = ''
|
175
|
+
command = ''
|
173
176
|
hostnames_by_ips = generate_hostnames_by_ips
|
174
177
|
|
175
178
|
return if hostnames_by_ips.none?
|
@@ -182,22 +185,36 @@ module VagrantPlugins
|
|
182
185
|
next
|
183
186
|
end
|
184
187
|
|
185
|
-
_stdin, _stdout, stderr, wait_thr = remove_goodhost_entries(ip_address, hostnames)
|
188
|
+
_stdin, _stdout, stderr, wait_thr, command = remove_goodhost_entries(ip_address, hostnames)
|
186
189
|
unless wait_thr.value.success?
|
187
190
|
error = true
|
188
191
|
error_text = stderr.read.strip
|
189
192
|
end
|
190
193
|
end
|
191
|
-
print_readme(error, error_text)
|
194
|
+
print_readme(error, error_text, command)
|
195
|
+
end
|
196
|
+
|
197
|
+
def get_clean_parameter_by_system(ip_address, is_win)
|
198
|
+
clean = "--clean"
|
199
|
+
if is_win
|
200
|
+
clean = "\"--clean\","
|
201
|
+
end
|
202
|
+
|
203
|
+
if disable_clean(ip_address)
|
204
|
+
clean = ''
|
205
|
+
end
|
206
|
+
return clean
|
192
207
|
end
|
193
208
|
|
194
|
-
def print_readme(error, error_text)
|
209
|
+
def print_readme(error, error_text, command)
|
195
210
|
unless error
|
211
|
+
@ui.info "[vagrant-goodhosts] Finished processing"
|
196
212
|
return false
|
197
213
|
end
|
198
214
|
|
199
215
|
cli = get_cli
|
200
216
|
@ui.error "[vagrant-goodhosts] Issue executing goodhosts CLI: #{error_text}"
|
217
|
+
@ui.error "[vagrant-goodhosts] Command: #{command}"
|
201
218
|
@ui.error "[vagrant-goodhosts] Cli path: #{cli}"
|
202
219
|
if cli.include? ".exe"
|
203
220
|
@ui.error "[vagrant-goodhosts] Check the readme at https://github.com/goodhosts/vagrant#windows-uac-prompt"
|
@@ -207,6 +224,18 @@ module VagrantPlugins
|
|
207
224
|
end
|
208
225
|
end
|
209
226
|
|
227
|
+
def append_hostsnames_by_ips(hostnames_by_ips, hostnames, ip_address, ip_index)
|
228
|
+
if hostnames[ip_index].count() > 0
|
229
|
+
hostnames[ip_index].each do |hostname|
|
230
|
+
unless ip_address.nil?
|
231
|
+
@ui.info "[vagrant-goodhosts] - found entry for: #{ip_address} #{hostname}"
|
232
|
+
end
|
233
|
+
end
|
234
|
+
hostnames_by_ips = { ip_address => hostnames[ip_index].join(" ") }
|
235
|
+
end
|
236
|
+
return hostnames_by_ips
|
237
|
+
end
|
238
|
+
|
210
239
|
def generate_hostnames_by_ips
|
211
240
|
hostnames_by_ips = []
|
212
241
|
ips = get_ips
|
@@ -218,25 +247,11 @@ module VagrantPlugins
|
|
218
247
|
if ips.count() > 1
|
219
248
|
ips.each do |ip|
|
220
249
|
ip_address = ip
|
221
|
-
|
222
|
-
hostnames[ip].each do |hostname|
|
223
|
-
unless ip_address.nil?
|
224
|
-
@ui.info "[vagrant-goodhosts] - found entry for: #{ip_address} #{hostname}"
|
225
|
-
end
|
226
|
-
end
|
227
|
-
hostnames_by_ips = { ip_address => hostnames[ip].join(" ") }
|
228
|
-
end
|
250
|
+
hostnames_by_ips = append_hostsnames_by_ips(hostnames_by_ips, hostnames, ip_address, ip)
|
229
251
|
end
|
230
252
|
else
|
231
253
|
ip_address = ips[0]
|
232
|
-
|
233
|
-
hostnames[ip_address].each do |hostname|
|
234
|
-
unless ip_address.nil?
|
235
|
-
@ui.info "[vagrant-goodhosts] - found entry for: #{ip_address} #{hostname}"
|
236
|
-
end
|
237
|
-
end
|
238
|
-
hostnames_by_ips = { ip_address => hostnames[ip_address].join(" ") }
|
239
|
-
end
|
254
|
+
hostnames_by_ips = append_hostsnames_by_ips(hostnames_by_ips, hostnames, ip_address, ip_address)
|
240
255
|
end
|
241
256
|
|
242
257
|
return hostnames_by_ips
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/package.sh
CHANGED
@@ -5,9 +5,10 @@ cd ./lib/vagrant-goodhosts/bundle
|
|
5
5
|
# Download
|
6
6
|
curl -s https://api.github.com/repos/goodhosts/cli/releases/latest | jq --raw-output '.assets[] | .browser_download_url' | xargs wget -i
|
7
7
|
# Extract
|
8
|
-
tar -zxvf
|
9
|
-
tar -zxvf
|
10
|
-
tar -zxvf
|
8
|
+
tar -zxvf goodhosts-1.1.0-darwin-amd64.tar.gz goodhosts && mv goodhosts cli_amd64_osx
|
9
|
+
tar -zxvf goodhosts-1.1.0-darwin-arm64.tar.gz goodhosts && mv goodhosts cli_arm64_osx
|
10
|
+
tar -zxvf goodhosts-1.1.0-linux-amd64.tar.gz goodhosts && mv goodhosts cli
|
11
|
+
tar -zxvf goodhosts-1.1.0-windows-amd64.tar.gz goodhosts.exe && mv goodhosts.exe cli.exe
|
11
12
|
rm -f ./*.tar.gz
|
12
13
|
rm -f ./*.txt
|
13
14
|
# Generate
|
data/vagrant-goodhosts.gemspec
CHANGED
@@ -6,6 +6,7 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.name = 'vagrant-goodhosts'
|
7
7
|
s.version = VagrantPlugins::GoodHosts::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
|
+
s.required_ruby_version = '>= 2.5'
|
9
10
|
s.authors = ['Daniele Scasciafratte']
|
10
11
|
s.email = ['mte90net@gmail.com']
|
11
12
|
s.description = "Enables Vagrant to update hosts file on the host machine with goodhosts"
|
@@ -19,7 +20,7 @@ Gem::Specification.new do |s|
|
|
19
20
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
20
21
|
s.require_paths = ['lib']
|
21
22
|
|
22
|
-
s.add_development_dependency 'bundler', '
|
23
|
+
s.add_development_dependency 'bundler', '>= 2.2.10'
|
23
24
|
s.add_development_dependency 'rake'
|
24
25
|
|
25
26
|
s.add_runtime_dependency "os"
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-goodhosts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniele Scasciafratte
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.2.10
|
20
20
|
type: :development
|
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:
|
26
|
+
version: 2.2.10
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +73,8 @@ files:
|
|
73
73
|
- lib/vagrant-goodhosts/GoodHosts.rb
|
74
74
|
- lib/vagrant-goodhosts/bundle/cli
|
75
75
|
- lib/vagrant-goodhosts/bundle/cli.exe
|
76
|
-
- lib/vagrant-goodhosts/bundle/
|
76
|
+
- lib/vagrant-goodhosts/bundle/cli_amd64_osx
|
77
|
+
- lib/vagrant-goodhosts/bundle/cli_arm64_osx
|
77
78
|
- lib/vagrant-goodhosts/config.rb
|
78
79
|
- lib/vagrant-goodhosts/plugin.rb
|
79
80
|
- lib/vagrant-goodhosts/version.rb
|
@@ -91,12 +92,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
92
|
requirements:
|
92
93
|
- - ">="
|
93
94
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
95
|
+
version: '2.5'
|
95
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
97
|
requirements:
|
97
|
-
- - "
|
98
|
+
- - ">="
|
98
99
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
100
|
+
version: '0'
|
100
101
|
requirements: []
|
101
102
|
rubygems_version: 3.2.27
|
102
103
|
signing_key:
|
Binary file
|