vagrant-bindfs 1.1.8 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +462 -0
  3. data/README.md +2 -3
  4. data/Vagrantfile +6 -10
  5. data/lib/vagrant-bindfs/bindfs/command.rb +1 -1
  6. data/lib/vagrant-bindfs/bindfs/folder.rb +1 -1
  7. data/lib/vagrant-bindfs/bindfs/option_definitions.json +2 -0
  8. data/lib/vagrant-bindfs/bindfs/option_set.rb +2 -2
  9. data/lib/vagrant-bindfs/bindfs/validators/config.rb +14 -6
  10. data/lib/vagrant-bindfs/bindfs/validators/runtime.rb +5 -5
  11. data/lib/vagrant-bindfs/bindfs/validators.rb +1 -1
  12. data/lib/vagrant-bindfs/bindfs.rb +2 -2
  13. data/lib/vagrant-bindfs/vagrant/actions/concerns/log.rb +1 -1
  14. data/lib/vagrant-bindfs/vagrant/actions/concerns/machine.rb +4 -6
  15. data/lib/vagrant-bindfs/vagrant/actions/concerns.rb +1 -1
  16. data/lib/vagrant-bindfs/vagrant/actions/installer.rb +8 -3
  17. data/lib/vagrant-bindfs/vagrant/actions/mounter.rb +5 -2
  18. data/lib/vagrant-bindfs/vagrant/actions.rb +1 -1
  19. data/lib/vagrant-bindfs/vagrant/capabilities/all/bindfs.rb +11 -2
  20. data/lib/vagrant-bindfs/vagrant/capabilities/all/package_manager.rb +1 -1
  21. data/lib/vagrant-bindfs/vagrant/capabilities/all/system_checks.rb +1 -1
  22. data/lib/vagrant-bindfs/vagrant/capabilities/all.rb +1 -1
  23. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/bindfs.rb +1 -1
  24. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/fuse.rb +3 -3
  25. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/package_manager.rb +1 -1
  26. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/system_checks.rb +1 -1
  27. data/lib/vagrant-bindfs/vagrant/capabilities/darwin.rb +1 -1
  28. data/lib/vagrant-bindfs/vagrant/capabilities/debian/bindfs.rb +8 -4
  29. data/lib/vagrant-bindfs/vagrant/capabilities/debian/fuse.rb +2 -2
  30. data/lib/vagrant-bindfs/vagrant/capabilities/debian/package_manager.rb +1 -1
  31. data/lib/vagrant-bindfs/vagrant/capabilities/debian.rb +1 -1
  32. data/lib/vagrant-bindfs/vagrant/capabilities/gentoo/bindfs.rb +22 -12
  33. data/lib/vagrant-bindfs/vagrant/capabilities/gentoo/fuse.rb +1 -1
  34. data/lib/vagrant-bindfs/vagrant/capabilities/gentoo/package_manager.rb +1 -1
  35. data/lib/vagrant-bindfs/vagrant/capabilities/gentoo.rb +1 -1
  36. data/lib/vagrant-bindfs/vagrant/capabilities/linux/fuse.rb +1 -1
  37. data/lib/vagrant-bindfs/vagrant/capabilities/linux/package_manager.rb +1 -1
  38. data/lib/vagrant-bindfs/vagrant/capabilities/linux/system_checks.rb +1 -1
  39. data/lib/vagrant-bindfs/vagrant/capabilities/linux.rb +1 -1
  40. data/lib/vagrant-bindfs/vagrant/capabilities/redhat/bindfs.rb +3 -3
  41. data/lib/vagrant-bindfs/vagrant/capabilities/redhat/fuse.rb +2 -2
  42. data/lib/vagrant-bindfs/vagrant/capabilities/redhat/package_manager.rb +1 -1
  43. data/lib/vagrant-bindfs/vagrant/capabilities/redhat.rb +1 -1
  44. data/lib/vagrant-bindfs/vagrant/capabilities/suse/bindfs.rb +4 -2
  45. data/lib/vagrant-bindfs/vagrant/capabilities/suse/fuse.rb +2 -2
  46. data/lib/vagrant-bindfs/vagrant/capabilities/suse/package_manager.rb +1 -1
  47. data/lib/vagrant-bindfs/vagrant/capabilities/suse.rb +1 -1
  48. data/lib/vagrant-bindfs/vagrant/capabilities/ubuntu/fuse.rb +1 -1
  49. data/lib/vagrant-bindfs/vagrant/capabilities/ubuntu.rb +1 -1
  50. data/lib/vagrant-bindfs/vagrant/capabilities.rb +1 -1
  51. data/lib/vagrant-bindfs/vagrant/config.rb +1 -1
  52. data/lib/vagrant-bindfs/vagrant/errors.rb +3 -3
  53. data/lib/vagrant-bindfs/vagrant/plugin.rb +5 -7
  54. data/lib/vagrant-bindfs/vagrant.rb +1 -1
  55. data/lib/vagrant-bindfs/version.rb +1 -1
  56. data/lib/vagrant-bindfs.rb +1 -1
  57. data/vagrant-bindfs.gemspec +43 -0
  58. metadata +18 -13
  59. data/Rakefile +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1fa28f942676808592e86a1fbad388ad70006aeda091b39486b3d75165292cc2
4
- data.tar.gz: 21393b9f50debe7e6033643ebe68417652d3197217e9ecfb530cc2ed505a6923
3
+ metadata.gz: f7dd8ae482ce72c699af4193d979a47d227751aaa63a084cf08f349ee004e04b
4
+ data.tar.gz: 865104e7c3370cac82cfd2b4a8858fe00ff2dd21392aa44ab9a099670cc451ed
5
5
  SHA512:
6
- metadata.gz: d792f4f486dab52ea65ca6a7bf2cfe8f4967449d8a1f88a185b21876a1107360f004111a45b1c7d36d6cda8a7dda62b1b17ae612f77016f408f373d58a48d03d
7
- data.tar.gz: bb34d7b15db3c38a6138f925c2fd4a29220cc57912b4dd7055cdb7882a56711ae77c76db8cf5f9f5d7ace5d3eceba155c60d0a73e1a53014c1c39ab85f632094
6
+ metadata.gz: ffd259aba3f1f9ef9f62407e3d112f6b94732b104827716655dc61ab6cbf922b3f2899b6e7540c8b303451a5f181b29de038944818cd75fd0545befd9e05321a
7
+ data.tar.gz: 7344115ac28af6df78378a572e59f204953bb0e71291c0dccaab79589c1ca310ab2f1071aa01ba5d1effd858dd1b8e9b622da9d7a2f7ffe7498fc343edcc1b0c
data/CHANGELOG.md ADDED
@@ -0,0 +1,462 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## Version 1.2.0 (2023-03-07)
10
+
11
+ ### Breaking changes
12
+
13
+ * Update Fuse integration on Mac OS X to use MacFuse (#101)
14
+ * Update Fuse integration on all Linux distributions to use Fuse 3, widely available (#101)
15
+ * Drop support for Ruby < 2.7
16
+
17
+ ### Fixed
18
+
19
+ * `gentoolkit` installation on Gentoo guests (#101)
20
+
21
+ ### Added
22
+
23
+ * Update bindfs support to 1.17.2
24
+
25
+ ### Changed
26
+
27
+ * Introduce Github Actions to automate unit tests (#97)
28
+
29
+ ## Version 1.1.9 (2021-09-21)
30
+
31
+ ### Added
32
+
33
+ * Support for bindfs 1.15.1
34
+
35
+ ## Version 1.1.8 (2020-09-04)
36
+
37
+ ### Added
38
+
39
+ * Support for bindfs 1.14.7
40
+
41
+ ## Version 1.1.7 (2020-04-08)
42
+
43
+ ### Fixed
44
+
45
+ * `config.default_options` inconsistent uses through contexts (See #93)
46
+ * Detection of Vagrant's available synced folders hook (See #91)
47
+
48
+ ## Version 1.1.6 (2020-01-14)
49
+
50
+ ### Fixed
51
+
52
+ * Remove upper constraint on Ruby version (See #92)
53
+
54
+ ## Version 1.1.5 (2019-12-23)
55
+
56
+ ### Added
57
+
58
+ * Support for bindfs 1.14.2
59
+
60
+ ### Fixed
61
+
62
+ * Documentation (#88 and #89, thanks to @cherouvim)
63
+
64
+ ### Changed
65
+
66
+ * Update test boxes
67
+
68
+ ## Version 1.1.4 (2019-06-21)
69
+
70
+ ### Fixed
71
+
72
+ * bindfs installation from sources (See #87)
73
+
74
+ ## Version 1.1.3 (2019-06-20)
75
+
76
+ ### Fixed
77
+
78
+ * Silence bindfs source installation cleanup messages
79
+
80
+ ## Version 1.1.2 (2019-06-18)
81
+
82
+ ### Fixed
83
+
84
+ * Download of bindfs sources tarballs
85
+
86
+ ## Version 1.1.1 (2019-06-07)
87
+
88
+ ### Added
89
+
90
+ * Support for bindfs 1.14.0
91
+
92
+ ### Fixed
93
+
94
+ * Installation documentation (#84, thanks to @ahmadmayahi)
95
+ * bindfs package detection on Red Hat and derivated (See #83)
96
+
97
+ ### Changed
98
+
99
+ * Remove reserved destination path validations (#86, thanks to @bartoszj)
100
+ * Update test boxes
101
+ * Update Vagrant sources location to use `hashicorp/vagrant`
102
+ * Update documentation
103
+
104
+ ## Version 1.1.0 (2018-01-30)
105
+
106
+ ### Added
107
+
108
+ * `:force_empty_mountpoint` configuration option, for compatibility with Fuse's `nonempty` option
109
+
110
+ ## Version 1.0.11 (2017-12-20)
111
+
112
+ ### Added
113
+
114
+ * Support for Gentoo guests
115
+
116
+ ### Changed
117
+
118
+ * Update tests boxes
119
+ * Extract capabilities to a JSON file
120
+
121
+ ## Version 1.0.10 (2017-12-01)
122
+
123
+ ### Added
124
+
125
+ * Support for bindfs 1.13.9
126
+
127
+ ### Fixed
128
+
129
+ * Link to bindfs documentation (#75, thanks to @grahamrhay)
130
+
131
+ ### Changed
132
+
133
+ * Argument formatting
134
+
135
+ ## Version 1.0.9 (2017-09-04)
136
+
137
+ ### Changed
138
+
139
+ * Update bindfs backup URL to download sources (#74, thanks to @mpartel)
140
+
141
+ ## Version 1.0.8 (2017-06-30)
142
+
143
+ ### Fixed
144
+
145
+ * Force repository update before package installation on Debian (See #72)
146
+
147
+ ## Version 1.0.7 (2017-04-08)
148
+
149
+ ### Added
150
+
151
+ * Support for bindfs 1.13.7
152
+
153
+ ## Version 1.0.6 (2017-03-25)
154
+
155
+ ### Fixed
156
+
157
+ * Accept `nil` as a value for string options (See #70)
158
+
159
+ ## Version 1.0.5 (2017-02-22)
160
+
161
+ ### Added
162
+
163
+ * More explicit error messages
164
+
165
+ ## Version 1.0.4 (2017-02-07)
166
+
167
+ ### Added
168
+
169
+ * Support for bindfs 1.13.6
170
+
171
+ ## Version 1.0.3 (2017-01-01)
172
+
173
+ ### Fixed
174
+
175
+ * bndfs full path detection (#67, thanks to @herebebogans)
176
+
177
+ ## Version 1.0.2 (2016-12-16)
178
+
179
+ ### Fixed
180
+
181
+ * Always use bindfs full path (See #64)
182
+ * Automatically cast arguments according to type (option or flag) (#63, thanks to @pdesgarets)
183
+
184
+ ### Changed
185
+
186
+ * Improved bindfs installation process
187
+
188
+ ## Version 1.0.1 (2016-12-05)
189
+
190
+ ### Fixed
191
+
192
+ * Explicit requirements on Ruby's `Enumerable` and `Forwardable` modules
193
+ * Uninitialized constant `VagrantBindfs::Bindfs::OptionSet::Forwardable` (#62, thanks to @rpnzl)
194
+
195
+ ## Version 1.0.0 (2016-12-04)
196
+
197
+ ### Added
198
+
199
+ * Allow to specify version of bindfs to be installed (See #54)
200
+
201
+ ### Changed
202
+
203
+ * Improved capabilities
204
+ * Distinguish configuration and runtime validations
205
+ * Distinguish Vagrant relate code and bindfs related code
206
+ * Introduce RuboCop
207
+ * Unit tests with RSpec
208
+
209
+ ## Version 0.4.14 (2016-11-29)
210
+
211
+ ### Fixed
212
+
213
+ * Uninitialized constant `Vagrant::Plugins::Bindfs::SOURCE_VERSION` (#61, thanks to @rbngzlv)
214
+
215
+ ## Version 0.4.13 (2016-11-26)
216
+
217
+ ### Fixed
218
+
219
+ * Ruby version requirements (#57, thanks to @renan)
220
+
221
+ ## Version 0.4.12 (2016-11-18)
222
+
223
+ ### Added
224
+
225
+ * `:source_version` configuration option, to control version of bindfs installed from source (See #54)
226
+ * Exclude `/vagrant` from allowed destination paths
227
+
228
+ ### Fixed
229
+
230
+ * Downgrade Ruby requirements (See #55)
231
+
232
+ ## Version 0.4.11 (2016-10-28)
233
+
234
+ ### Added
235
+
236
+ * Support for bindfs 1.13.4 new options (See #52)
237
+
238
+ ## Version 0.4.10 (2016-10-02)
239
+
240
+ ### Added
241
+
242
+ * OS X support
243
+
244
+ ### Changed
245
+
246
+ * Use bento boxes only for tests
247
+
248
+ ## Version 0.4.9 (2016-07-04)
249
+
250
+ ### Changed
251
+
252
+ * Support mirrors to download bindfs sources on source install (See #46)
253
+
254
+ ## Version 0.4.8 (2016-07-01)
255
+
256
+ ### Changed
257
+
258
+ * Download URL for bindfs sources on source install (See #46)
259
+
260
+ ## Version 0.4.7 (2016-04-21)
261
+
262
+ ### Fixed
263
+
264
+ * Overwriting user or group (See #41)
265
+ * bindfs version detection (#43, thanks to @msabramo)
266
+
267
+ ### Changed
268
+
269
+ * Update tests configuration and boxes
270
+
271
+ ## Version 0.4.6 (2015-11-30)
272
+
273
+ ### Added
274
+
275
+ * Support for bindfs 1.13 new options
276
+
277
+ ## Version 0.4.5 (2015-11-30)
278
+
279
+ ### Fixed
280
+
281
+ * bindfs version detection
282
+
283
+ ## Version 0.4.4 (2015-11-29)
284
+
285
+ ### Added
286
+
287
+ * Support for bindfs 1.13
288
+ * Allow to skip user/group verifications (#36, thanks to @charliewolf)
289
+
290
+ ### Fixed
291
+
292
+ * Improved error message (#34, thanks to @aronwoost)
293
+ * bindfs version detection
294
+
295
+ ## Version 0.4.3 (2015-08-31)
296
+
297
+ ### Fixed
298
+
299
+ * Detection of bound folders (See #33)
300
+
301
+ ## Version 0.4.2 (2015-07-02)
302
+
303
+ ### Added
304
+
305
+ * Allow folders to be bound after folders syncing or after provisioning
306
+ * Handle missing user/group (#32, thanks to @mhaylock)
307
+
308
+ ## Version 0.4.1 (2015-06-17)
309
+
310
+ ### Fixed
311
+
312
+ * Installation dependencies on Red Hat guests (#30, thanks to @kekkis)
313
+ * Link to bindfs documentation (#26, thanks to @aconrad)
314
+
315
+ ## Version 0.4.0 (2015-02-02)
316
+
317
+ ### Fixed
318
+
319
+ * Fuse detection on Ubuntu guests
320
+ * Installation dependencies on Red Hat guests
321
+ * Compatibility with older RHEL Server (#25, thanks to @jliebert)
322
+
323
+ ## Version 0.3.4 (2015-01-17)
324
+
325
+ ### Fixed
326
+
327
+ * Fuse kernel module loading (See #20)
328
+
329
+ ## Version 0.3.3 (2015-01-17)
330
+
331
+ ### Added
332
+
333
+ * CentOS 5 & 6 guests support (#24, thanks to @ricoli)
334
+
335
+ ## Version 0.3.2 (2014-11-08)
336
+
337
+ ### Added
338
+
339
+ * Fedora guests support
340
+ * Use `modprobe` to check Fuse is avalable and loaded (#17, thanks to @tboerger)
341
+
342
+ ### Fixed
343
+
344
+ * Documentation (#16, thanks to @tboerger)
345
+
346
+ ## Version 0.3.1 (2014-10-10)
347
+
348
+ ### Fixed
349
+
350
+ * Compatibility with old Vagrantfiles (See #15)
351
+ * Documentation
352
+
353
+ ## Version 0.3.0 (2014-10-08)
354
+
355
+ ### Added
356
+
357
+ * Support for Vagrant capabilities (#14, thanks to @tboerger)
358
+
359
+ ## Version 0.2.4 (2014-01-04)
360
+
361
+ ### Added
362
+
363
+ * Basic support for fuse options
364
+
365
+ ### Fixed
366
+
367
+ * Option short names support
368
+
369
+ ## Version 0.2.3 (2013-12-16)
370
+
371
+ ### Added
372
+
373
+ * Compatibility with Vagrant 1.4
374
+ * Improve documentation
375
+
376
+ ### Changed
377
+
378
+ * Internal Ruby namespaces
379
+
380
+ ## Version 0.2.2 (2013-07-22)
381
+
382
+ ### Added
383
+
384
+ * Improve documentation
385
+
386
+ ## Version 0.2.1 (2013-06-04)
387
+
388
+ ### Fixed
389
+
390
+ * Hook precedence (#5, thanks to @igor47)
391
+
392
+ ## Version 0.2.0 (2013-06-03)
393
+
394
+ ### Breaking changes
395
+
396
+ * Rewrite to support Vagrant's new plugin API (#4, thanks to @igor47)
397
+
398
+ ## Version 0.1.9 (2012-12-18)
399
+
400
+ ### Fixed
401
+
402
+ * Prevent double execution of `bindfs` commands (#3, thanks to @juanje)
403
+ * I18n namespace for error messages (#1, thanks to @avit)
404
+
405
+ ## Version 0.1.8 (2012-01-31)
406
+
407
+ ### Breaking changes
408
+
409
+ * Drop support for Vagrant < 0.9.4
410
+
411
+ ### Added
412
+
413
+ * Compatibility with Vagrant 0.9.4
414
+ * Documentation and license
415
+
416
+ ## Version 0.1.7 (2011-02-08)
417
+
418
+ ### Changed
419
+
420
+ * Remove unnecessary logging
421
+
422
+ ## Version 0.1.6 (2011-02-08)
423
+
424
+ ### Fixed
425
+
426
+ * Default permissions now compatible with executable files
427
+ * `no-allow-other` wrongly considered as an option
428
+
429
+ ## Version 0.1.5 (2011-02-07)
430
+
431
+ ### Fixed
432
+
433
+ * Injection into Vagrant's middleware stacks so `vagrant-bindfs` commands can be used as soon as a VM is created.
434
+
435
+ ## Version 0.1.4 (2011-02-07)
436
+
437
+ ### Fixed
438
+
439
+ * Compatibility with Vagrant 0.7
440
+
441
+ ## Version 0.1.3 (2010-12-30)
442
+
443
+ ### Added
444
+
445
+ * Check if bindfs is installed on guest machine
446
+ * Failed commands reporting
447
+
448
+ ## Version 0.1.2 (2010-11-29)
449
+
450
+ ### Added
451
+
452
+ * Support for bindfs flag options
453
+
454
+ ## Version 0.1.1 (2010-11-22)
455
+
456
+ ### Added
457
+
458
+ * Improve documentation
459
+
460
+ ## Version 0.1.0 (2010-11-22)
461
+
462
+ * Initial release
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # vagrant-bindfs
2
2
 
3
- A Vagrant plugin to automate [bindfs](http://bindfs.org/) mounts in the VM. This allow you to change owner, group and permissions on files and, for example, work around NFS share permissions issues.
3
+ [![Unit tests](https://github.com/gael-ian/vagrant-bindfs/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/gael-ian/vagrant-bindfs/actions/workflows/unit-tests.yml)
4
4
 
5
+ A Vagrant plugin to automate [bindfs](http://bindfs.org/) mounts in the VM. This allow you to change owner, group and permissions on files and, for example, work around NFS share permissions issues.
5
6
 
6
7
  ## Some Background: Why `vagrant-bindfs`
7
8
 
@@ -25,7 +26,6 @@ Simply:
25
26
 
26
27
  _Note that `map_uid` and `map_gid` NFS options can be used to set the identity used to read/write files on the host side._
27
28
 
28
-
29
29
  ## Installation
30
30
 
31
31
  vagrant-bindfs is distributed as a Ruby gem.
@@ -35,7 +35,6 @@ You can install it as any other Vagrant plugin with:
35
35
  vagrant plugin install vagrant-bindfs
36
36
  ```
37
37
 
38
-
39
38
  ## Usage
40
39
 
41
40
  In your `Vagrantfile`, use `config.bindfs.bind_folder` to configure folders that will be bound on VM startup.
data/Vagrantfile CHANGED
@@ -5,23 +5,19 @@
5
5
 
6
6
  # Uncomment machines you want to test
7
7
  test_machines = {
8
- # debian: { box: "bento/debian-10" },
9
- # ubuntu: { box: "bento/ubuntu-18.04" },
10
- # fedora: { box: "bento/fedora-latest" },
11
- # redhat: { box: "bento/centos-8" },
8
+ # debian: { box: "bento/debian-11" },
9
+ # ubuntu: { box: "bento/ubuntu-22.04" },
10
+ # fedora: { box: "bento/fedora-latest" },
11
+ # redhat: { box: "bento/centos-stream-9" },
12
12
  # gentoo: { box: "generic/gentoo" },
13
13
 
14
14
  # The `vagrant` user group does not exist in this box.
15
15
  # suse: { box: "bento/opensuse-leap-15", args: { group: 'users' } },
16
16
 
17
- # **This box require the Oracle VM VirtualBox Extension Pack for Virtualbox.**
18
- # The `vagrant` user group does not exist in this box.
19
- # osx: { box: "jhcook/osx-elcapitan-10.11", args: { group: 'staff' } },
20
-
21
17
  # When you add a new test machine, please ensure that it will stay
22
18
  # available and regularly updated for future tests. We recommend to
23
- # use officialy supported boxes, as stated in the Vagrant
24
- # documentation. See https://goo.gl/LbkPVF
19
+ # use officially supported boxes, as stated in the Vagrant documentation.
20
+ # See https://goo.gl/LbkPVF
25
21
  }
26
22
 
27
23
  require File.expand_path('spec/vagrantfile_helper', __dir__)
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VagrantBindfs
4
4
  module Bindfs
5
- class Command
5
+ class Command # :nodoc:
6
6
  attr_reader :folder
7
7
 
8
8
  def initialize(folder)
@@ -4,7 +4,7 @@ require 'digest/sha1'
4
4
 
5
5
  module VagrantBindfs
6
6
  module Bindfs
7
- class Folder
7
+ class Folder # :nodoc:
8
8
  attr_reader :source,
9
9
  :destination,
10
10
  :options,
@@ -9,6 +9,8 @@
9
9
  "map": { "long": ["map"], "short": [], "type": "option", "since": "1.10" },
10
10
  "map-passwd": { "long": ["map-passwd"], "short": [], "type": "option", "since": "1.14.6" },
11
11
  "map-group": { "long": ["map-group"], "short": [], "type": "option", "since": "1.14.6" },
12
+ "map-passwd-rev": { "long": ["map-passwd-rev"], "short": [], "type": "option", "since": "1.16.1" },
13
+ "map-group-rev": { "long": ["map-group-rev"], "short": [], "type": "option", "since": "1.16.1" },
12
14
  "uid-offset": { "long": ["uid-offset"], "short": [], "type": "option", "since": "1.13.2" },
13
15
  "gid-offset": { "long": ["gid-offset"], "short": [], "type": "option", "since": "1.13.2" },
14
16
 
@@ -4,7 +4,7 @@ require 'forwardable'
4
4
 
5
5
  module VagrantBindfs
6
6
  module Bindfs
7
- class OptionSet
7
+ class OptionSet # :nodoc:
8
8
  attr_reader :version,
9
9
  :options,
10
10
  :invalid_options,
@@ -12,7 +12,7 @@ module VagrantBindfs
12
12
 
13
13
  include ::Enumerable
14
14
  extend ::Forwardable
15
- def_delegators :@options, :each, :[], :keys, :key?
15
+ def_delegators :@options, :each, :[], :keys, :key?, :to_h
16
16
 
17
17
  def initialize(version = nil, options = {})
18
18
  @version = version
@@ -5,7 +5,7 @@ require 'forwardable'
5
5
  module VagrantBindfs
6
6
  module Bindfs
7
7
  module Validators
8
- class Config
8
+ class Config # :nodoc:
9
9
  attr_reader :folder,
10
10
  :errors
11
11
 
@@ -28,24 +28,32 @@ module VagrantBindfs
28
28
  protected
29
29
 
30
30
  def validate_source!
31
- @errors << I18n.t('vagrant-bindfs.validations.source_path_required') if source.empty?
32
- @errors << I18n.t('vagrant-bindfs.validations.path_must_be_absolute', path: source) if relative_path?(source)
31
+ @errors << invalid('source_path_required') if source.empty?
32
+ @errors << invalid('path_must_be_absolute', path: source) if relative_path?(source)
33
33
  end
34
34
 
35
35
  def validate_destination!
36
- @errors << I18n.t('vagrant-bindfs.validations.destination_path_required') if destination.empty?
37
- @errors << I18n.t('vagrant-bindfs.validations.path_must_be_absolute', path: destination) if relative_path?(destination)
36
+ @errors << invalid('destination_path_required') if destination.empty?
37
+ @errors << invalid('path_must_be_absolute', path: destination) if relative_path?(destination)
38
38
  end
39
39
 
40
40
  def validate_options!
41
41
  folder.options.invalid_options.each_key do |option_name|
42
- @errors << I18n.t(option_name.tr('-', '_'), scope: 'vagrant-bindfs.deprecations')
42
+ @errors << deprecation(option_name.tr('-', '_'))
43
43
  end
44
44
  end
45
45
 
46
46
  def relative_path?(path)
47
47
  Pathname.new(path).relative?
48
48
  end
49
+
50
+ def invalid(key, **options)
51
+ I18n.t(key, **options.merge(scope: 'vagrant-bindfs.validations'))
52
+ end
53
+
54
+ def deprecation(key)
55
+ I18n.t(key, scope: 'vagrant-bindfs.deprecations')
56
+ end
49
57
  end
50
58
  end
51
59
  end
@@ -3,7 +3,7 @@
3
3
  module VagrantBindfs
4
4
  module Bindfs
5
5
  module Validators
6
- class Runtime < Config
6
+ class Runtime < Config # :nodoc:
7
7
  attr_reader :machine
8
8
 
9
9
  def initialize(folder, machine)
@@ -16,13 +16,13 @@ module VagrantBindfs
16
16
  def validate_source!
17
17
  super
18
18
 
19
- @errors << I18n.t('vagrant-bindfs.validations.source_path_does_not_exist', path: source) unless directory_exists?(source)
19
+ @errors << invalid('source_path_does_not_exist', path: source) unless directory_exists?(source)
20
20
  end
21
21
 
22
22
  def validate_destination!
23
23
  super
24
24
 
25
- @errors << I18n.t('vagrant-bindfs.validations.destination_already_mounted', dest: destination) if mount_exists?(destination)
25
+ @errors << invalid('destination_already_mounted', dest: destination) if mount_exists?(destination)
26
26
  end
27
27
 
28
28
  def validate_options!
@@ -44,14 +44,14 @@ module VagrantBindfs
44
44
  return if machine.config.bindfs.skip_validations.include?(:user)
45
45
  return if machine.guest.capability(:bindfs_exists_user, options['force-user'])
46
46
 
47
- @errors << I18n.t('vagrant-bindfs.validations.user_does_not_exist', user: options['force-user'])
47
+ @errors << invalid('user_does_not_exist', user: options['force-user'])
48
48
  end
49
49
 
50
50
  def validate_group
51
51
  return if machine.config.bindfs.skip_validations.include?(:group)
52
52
  return if machine.guest.capability(:bindfs_exists_group, options['force-group'])
53
53
 
54
- @errors << I18n.t('vagrant-bindfs.validations.group_does_not_exist', group: options['force-group'])
54
+ @errors << invalid('group_does_not_exist', group: options['force-group'])
55
55
  end
56
56
  end
57
57
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VagrantBindfs
4
4
  module Bindfs
5
- module Validators
5
+ module Validators # :nodoc:
6
6
  autoload :Config, 'vagrant-bindfs/bindfs/validators/config'
7
7
  autoload :Runtime, 'vagrant-bindfs/bindfs/validators/runtime'
8
8
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VagrantBindfs
4
- module Bindfs
5
- SOURCE_VERSION = '1.14.7'
4
+ module Bindfs # :nodoc:
5
+ SOURCE_VERSION = '1.17.2'
6
6
  SOURCE_URLS = [
7
7
  'https://bindfs.org/downloads/%<basename>s.tar.gz',
8
8
  'https://bindfs.dy.fi/downloads/%<basename>s.tar.gz'
@@ -4,7 +4,7 @@ module VagrantBindfs
4
4
  module Vagrant
5
5
  module Actions
6
6
  module Concerns
7
- module Log
7
+ module Log # :nodoc:
8
8
  def logger
9
9
  env[:ui]
10
10
  end