vagrant-docker-networks-manager 1.0.7 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8281a2e02280d3ddf164b1a125ac3d28443a0d32addb7363309b7ef08d3ac204
4
- data.tar.gz: aba6e4f4e8f154894042ea9015e6db89c3d0f512f63f6de3d60261bcf8121f02
3
+ metadata.gz: 0bbb1f94ae726a439322fdc8f5b06c09ccb9bf103b15183c3438235416864f23
4
+ data.tar.gz: '0397d0f42adb37ba0171b6970ced23ad4428058565c70730f78080b373eb188e'
5
5
  SHA512:
6
- metadata.gz: 197d66d87aa0099955f3ea2dc9d65f2c2d2fca595b6331912c1a6c8f3e519d68270a38cce3af2e2b9f3731bda65d1394cfbe6344526bc37cbbf79a7a59916858
7
- data.tar.gz: 643c60df1fcfa0dbbf8603e230711226b06c3510e614917ba42c0f3a888f0926cab70ec77f486490b581c4cd04b35b6b6085ac3b9f71ca2313e49b6dd19a25a8
6
+ metadata.gz: e2e7d7a8dc2fc42c7669e4290a858179d25e5fa0fd144156bad65e3565a5012b65b47a96ad8434272bfd39b3f7725e094e371b1bfa41c2221bf61f9bf94c0be9
7
+ data.tar.gz: 163bf607c79aff1e02794752c7211e074cf06bc3b17fd27d48ef0d3d97914421d17dd2afadacb1c34d635a8e773aa886c2b761e320b0e1da1e39fc222032fac8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.1.0](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.0.7...v1.1.0) (2026-03-11)
4
+
5
+
6
+ ### Fonctionnalités ✨
7
+
8
+ * **i18n:** Add connect_container log message in en/fr ([0608f9e](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/0608f9eead6942a97f738e5343918a5efc6a3c86))
9
+
10
+
11
+ ### Corrections 🐛
12
+
13
+ * **error:** Replace bare rescue with rescue StandardError throughout ([5db1d12](https://github.com/julienpoirou/vagrant-docker-networks-manager/commit/5db1d1268ca63a624f2e2c4fc2c4e1f6cbfb5d29))
14
+
3
15
  ## [1.0.7](https://github.com/julienpoirou/vagrant-docker-networks-manager/compare/v1.0.6...v1.0.7) (2025-08-18)
4
16
 
5
17
 
data/README.md CHANGED
@@ -7,6 +7,7 @@
7
7
  [![License](https://img.shields.io/github/license/julienpoirou/vagrant-docker-networks-manager.svg)](LICENSE.md)
8
8
  [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-%23FE5196.svg)](https://www.conventionalcommits.org)
9
9
  [![Renovate](https://img.shields.io/badge/Renovate-enabled-brightgreen.svg)](https://renovatebot.com)
10
+ [![Total downloads](https://img.shields.io/gem/dt/vagrant-docker-networks-manager?logo=rubygems&label=downloads)](https://rubygems.org/gems/vagrant-docker-networks-manager)
10
11
 
11
12
  Vagrant plugin to **manage Docker networks** with labeled ownership, safe lifecycle hooks, JSON output, and conflict-aware validation.
12
13
 
@@ -280,10 +281,7 @@ Emojis can be disabled with `--no-emoji`.
280
281
 
281
282
  ## Permissions & OS notes
282
283
 
283
- - **Linux / macOS**: modifying `/etc/hosts` requires privileges. The plugin pipes through `sudo tee -a` when appending, and writes the file when removing. You may be prompted for your password.
284
- - **Windows**: the plugin uses **PowerShell elevation** (`Start-Process -Verb RunAs`) when needed to append or rewrite the hosts file.
285
-
286
- > If your shell is already elevated (root/Admin), no prompts appear.
284
+ This plugin only calls `docker` CLI commands — no elevated privileges are required by the plugin itself. However, the Docker daemon must be reachable by the current user (e.g. the user must be in the `docker` group on Linux, or Docker Desktop must be running on macOS/Windows).
287
285
 
288
286
  ---
289
287
 
@@ -1 +1 @@
1
- 1.0.7
1
+ 1.1.0
@@ -17,10 +17,11 @@ module VagrantDockerNetworksManager
17
17
  def call(env)
18
18
  UiHelpers.setup_i18n!
19
19
  cfg = env[:machine].config.docker_network
20
- set_locale!(cfg)
20
+ UiHelpers.setup_locale_from_config!(cfg)
21
+ ui = env[:ui]
21
22
 
22
23
  unless Util.docker_available?
23
- env[:ui].error("#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
24
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
24
25
  return @app.call(env)
25
26
  end
26
27
 
@@ -30,15 +31,15 @@ module VagrantDockerNetworksManager
30
31
  if Util.docker_network_exists?(name)
31
32
  if owned_by_this_machine?(name, mid)
32
33
  write_marker(env, name, cfg)
33
- env[:ui].info("#{UiHelpers.e(:success)} #{I18n.t('messages.network_exists_adopted', name: name)}")
34
+ UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('messages.network_exists_adopted', name: name)}")
34
35
  else
35
- env[:ui].info("#{UiHelpers.e(:info)} #{I18n.t('messages.network_exists', name: name)}")
36
+ UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('messages.network_exists', name: name)}")
36
37
  end
37
38
  else
38
39
  subnet_label = cfg.network_subnet || "-"
39
40
 
40
41
  if cfg.network_subnet && !VagrantDockerNetworksManager::Util.valid_subnet?(cfg.network_subnet)
41
- env[:ui].error("#{UiHelpers.e(:error)} #{I18n.t('errors.invalid_subnet')}")
42
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.invalid_subnet')}")
42
43
  return @app.call(env)
43
44
  end
44
45
 
@@ -47,19 +48,19 @@ module VagrantDockerNetworksManager
47
48
  cfg.network_subnet,
48
49
  ignore_network: name
49
50
  )
50
- env[:ui].error("#{UiHelpers.e(:error)} #{I18n.t('errors.subnet_in_use')}")
51
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.subnet_in_use')}")
51
52
  return @app.call(env)
52
53
  end
53
54
 
54
- env[:ui].info("#{UiHelpers.e(:ongoing)} #{I18n.t('log.create_network', name: name, subnet: subnet_label)}")
55
+ UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.create_network', name: name, subnet: subnet_label)}")
55
56
  builder = NetworkBuilder.new(cfg, machine_id: mid)
56
57
  args = builder.build_create_command_args
57
58
  if Util.sh!(*args)
58
59
  write_marker(env, name, cfg)
59
- env[:ui].info("#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
60
+ UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
60
61
  else
61
62
  rendered = args.shelljoin
62
- env[:ui].error("#{UiHelpers.e(:error)} #{I18n.t('messages.create_failed', cmd: rendered)}")
63
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('messages.create_failed', cmd: rendered)}")
63
64
  end
64
65
  end
65
66
 
@@ -68,14 +69,6 @@ module VagrantDockerNetworksManager
68
69
 
69
70
  private
70
71
 
71
- def set_locale!(cfg)
72
- lang = cfg.locale || ENV["VDNM_LANG"]
73
- return unless lang
74
- UiHelpers.set_locale!(lang)
75
- rescue UiHelpers::UnsupportedLocaleError
76
- UiHelpers.set_locale!("en")
77
- end
78
-
79
72
  def write_marker(env, name, cfg)
80
73
  m_id = env[:machine].id
81
74
  dir = env[:machine].data_dir.join("docker-networks")
@@ -99,7 +92,7 @@ module VagrantDockerNetworksManager
99
92
  }
100
93
  File.write(marker, JSON.pretty_generate(payload))
101
94
  rescue => e
102
- env[:ui].warn("marker write failed for '#{name}': #{e.message}")
95
+ UiHelpers.warn(env[:ui], "marker write failed for '#{name}': #{e.message}")
103
96
  end
104
97
 
105
98
  def owned_by_this_machine?(name, machine_id)
@@ -115,10 +108,11 @@ module VagrantDockerNetworksManager
115
108
  def call(env)
116
109
  UiHelpers.setup_i18n!
117
110
  cfg = env[:machine].config.docker_network
118
- set_locale!(cfg)
111
+ UiHelpers.setup_locale_from_config!(cfg)
112
+ ui = env[:ui]
119
113
 
120
114
  unless Util.docker_available?
121
- env[:ui].error("#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
115
+ UiHelpers.error(ui, "#{UiHelpers.e(:error)} #{I18n.t('errors.docker_unavailable')}")
122
116
  return @app.call(env)
123
117
  end
124
118
 
@@ -131,7 +125,7 @@ module VagrantDockerNetworksManager
131
125
  end
132
126
 
133
127
  if created_by_this_machine?(env, name) || owned_by_this_machine?(name, mid)
134
- env[:ui].info("#{UiHelpers.e(:broom)} #{I18n.t('messages.remove_network', name: name)}")
128
+ UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('messages.remove_network', name: name)}")
135
129
 
136
130
  if Util.docker_network_exists?(name)
137
131
  out, _e, st = Open3.capture3("docker", "network", "inspect", name)
@@ -140,30 +134,30 @@ module VagrantDockerNetworksManager
140
134
  info = JSON.parse(out).first
141
135
  (info["Containers"] || {}).values.each do |c|
142
136
  cn = c["Name"]
143
- env[:ui].info("#{UiHelpers.e(:ongoing)} #{I18n.t('log.disconnect_container', name: cn)}")
137
+ UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.disconnect_container', name: cn)}")
144
138
  Util.sh!("network", "disconnect", "--force", name, cn)
145
139
  if ENV["VDNM_DESTROY_WITH_CONTAINERS"] == "1"
146
- env[:ui].info("#{UiHelpers.e(:ongoing)} #{I18n.t('log.remove_container', name: cn)}")
140
+ UiHelpers.say(ui, "#{UiHelpers.e(:ongoing)} #{I18n.t('log.remove_container', name: cn)}")
147
141
  Util.sh!("rm", "-f", cn)
148
142
  end
149
143
  end
150
144
  rescue => e
151
- env[:ui].warn("failed to parse containers for '#{name}': #{e.message}")
145
+ UiHelpers.warn(ui, "failed to parse containers for '#{name}': #{e.message}")
152
146
  end
153
147
  end
154
148
 
155
149
  if Util.sh!("network", "rm", name)
156
150
  delete_marker(env, name)
157
- env[:ui].info("#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
151
+ UiHelpers.say(ui, "#{UiHelpers.e(:success)} #{I18n.t('log.ok')}")
158
152
  else
159
- env[:ui].warn("#{UiHelpers.e(:warning)} #{I18n.t('errors.remove_failed')}")
153
+ UiHelpers.warn(ui, "#{UiHelpers.e(:warning)} #{I18n.t('errors.remove_failed')}")
160
154
  end
161
155
  else
162
156
  delete_marker(env, name)
163
- env[:ui].info("#{UiHelpers.e(:info)} #{I18n.t('messages.nothing_to_do')}")
157
+ UiHelpers.say(ui, "#{UiHelpers.e(:info)} #{I18n.t('messages.nothing_to_do')}")
164
158
  end
165
159
  else
166
- env[:ui].info("#{UiHelpers.e(:broom)} #{I18n.t('messages.nothing_to_do')}")
160
+ UiHelpers.say(ui, "#{UiHelpers.e(:broom)} #{I18n.t('messages.nothing_to_do')}")
167
161
  end
168
162
 
169
163
  @app.call(env)
@@ -171,14 +165,6 @@ module VagrantDockerNetworksManager
171
165
 
172
166
  private
173
167
 
174
- def set_locale!(cfg)
175
- lang = cfg.locale || ENV["VDNM_LANG"]
176
- return unless lang
177
- UiHelpers.set_locale!(lang)
178
- rescue UiHelpers::UnsupportedLocaleError
179
- UiHelpers.set_locale!("en")
180
- end
181
-
182
168
  def marker_path(env, name)
183
169
  env[:machine].data_dir.join("docker-networks", "#{name}.json")
184
170
  end