vagrant-bindfs 1.1.3 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a939bc8f86df88a4b9d3164574ed41c2fa4630d5
4
- data.tar.gz: 3ed4be8df541eeb94d90f18c3e8cd6a381406807
2
+ SHA256:
3
+ metadata.gz: 1fa28f942676808592e86a1fbad388ad70006aeda091b39486b3d75165292cc2
4
+ data.tar.gz: 21393b9f50debe7e6033643ebe68417652d3197217e9ecfb530cc2ed505a6923
5
5
  SHA512:
6
- metadata.gz: c9615bbf021eac190443f5f6d5e428bb0b1f61ca791ccd861c2cd5ce278655e1e0b52e31447cedb51efa65df382c4a5dcd9661d21faa0803647814687f42f006
7
- data.tar.gz: aa395850d5bcb0516ceee3dbc242b15011e5ed205c00a1c0f60f27855324485fc5d9933fdf8814f80ce6e74860ccd1c246b3282fd27b7dfbe1f0229519ffdf6c
6
+ metadata.gz: d792f4f486dab52ea65ca6a7bf2cfe8f4967449d8a1f88a185b21876a1107360f004111a45b1c7d36d6cda8a7dda62b1b17ae612f77016f408f373d58a48d03d
7
+ data.tar.gz: bb34d7b15db3c38a6138f925c2fd4a29220cc57912b4dd7055cdb7882a56711ae77c76db8cf5f9f5d7ace5d3eceba155c60d0a73e1a53014c1c39ab85f632094
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # vagrant-bindfs
2
2
 
3
- A Vagrant plugin to automate [bindfs](http://bindfs.org/) mount in the VM. This allow you to change owner, group and permissions on files and, for example, work around NFS share permissions issues.
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.
4
4
 
5
5
 
6
6
  ## Some Background: Why `vagrant-bindfs`
7
7
 
8
8
  The default vagrant provider is [virtualbox](https://www.virtualbox.org/).
9
- It's free, and it works well, but it has some [performance problems](http://snippets.aktagon.com/snippets/609-Slow-IO-performance-with-Vagrant-and-VirtualBox-).
9
+ It's free and works well but has some [performance problems](http://snippets.aktagon.com/snippets/609-Slow-IO-performance-with-Vagrant-and-VirtualBox-).
10
10
 
11
11
  People often recommend switching to [vagrant's VMWare-fusion provider](http://www.vagrantup.com/vmware).
12
12
  This reportedly has better performance, but shares with symlinks [won't work](http://communities.vmware.com/thread/428199?start=0&tstart=0).
@@ -38,15 +38,15 @@ vagrant plugin install vagrant-bindfs
38
38
 
39
39
  ## Usage
40
40
 
41
- In your `Vagrantfile`, use `config.bindfs.bind_folder` to configure folders that will be binded on VM startup.
41
+ In your `Vagrantfile`, use `config.bindfs.bind_folder` to configure folders that will be bound on VM startup.
42
42
  The format is:
43
43
 
44
44
  ```ruby
45
45
  config.bindfs.bind_folder "/path/to/source", "/path/to/destination", options
46
46
  ```
47
47
 
48
- By default, all folders are binded after folders syncing between host and guest machines.
49
- You can pass a special `:after` option to the bind_folder method to choose when a folder should be binded.
48
+ By default, all folders are bound after folders syncing between host and guest machines.
49
+ You can pass a special `:after` option to the bind_folder method to choose when a folder should be bound.
50
50
  Supported values are :
51
51
 
52
52
  * `:synced_folders` (default)
@@ -92,27 +92,27 @@ Remember that Vagrant use `/vagrant` on guest side to automatically share your p
92
92
  ### bindfs support
93
93
 
94
94
  The `bind_folder` config accept any option you can pass to bindfs.
95
- vagrant-bindfs is compatible with bindfs from version 1.9 to 1.13.4.
96
- Check [lib/vagrant-bindfs/command.rb](https://github.com/gael-ian/vagrant-bindfs/blob/master/lib/vagrant-bindfs/command.rb#L66) for a complete list of supported options and default values and read the [bindfs man page](http://bindfs.org/docs/bindfs.1.html) for full documentation.
95
+ vagrant-bindfs is compatible with bindfs from version 1.9 to 1.14.7.
96
+ Check [lib/vagrant-bindfs/bindfs/option_definitions.json](https://github.com/gael-ian/vagrant-bindfs/blob/master/lib/vagrant-bindfs/bindfs/option_definitions.json) for a complete list of supported options and default values and read the [bindfs man page](http://bindfs.org/docs/bindfs.1.html) for full documentation.
97
97
 
98
98
  Both long arguments and shorthand are supported.
99
99
  If you set both, shorthand will prevail.
100
- Long arguments can be written indifferently with underscore ('force_user') or dash ('force-user') and as strings (:'force-user') or symbols (:force_user).
100
+ Long arguments can be written indifferently with underscore ('force_user') or dash ('force-user') and as strings ('force-user') or symbols (:force_user or :'force-user').
101
101
 
102
102
  Option arguments values can be anything that can be casted to a string _via_ `to_s`.
103
103
  The plugin will try to detect flag arguments values as true or false from common notations.
104
104
 
105
- vagrant-bindfs detects installed version of bindfs, translate option names when needed and ignore an option if it is not supported.
105
+ vagrant-bindfs detects installed version of bindfs, translates option names when needed and ignores an option if it is not supported.
106
106
  As we may have missed something, it will warn you when a binding command fail.
107
107
 
108
- On Debian (this includes Ubuntu), SUSE, Fedora, CentOS (5-6), Gentoo and OS X guest systems, vagrant-bindfs will try to install bindfs automatically if it is not installed.
108
+ On Debian (and Ubuntu), SUSE, Fedora, CentOS, Gentoo and OS X guest systems, vagrant-bindfs will try to install bindfs automatically if it is not installed.
109
109
  On other system, you'll get warned.
110
110
 
111
111
  OS X guests may need some specific options. See [bindfs README](https://github.com/mpartel/bindfs#os-x-note) for details.
112
112
 
113
113
  ## Configuration
114
114
 
115
- This plugin supports the following configuration options
115
+ This plugin supports the following configuration options:
116
116
 
117
117
  ### `debug`
118
118
 
@@ -137,10 +137,10 @@ end
137
137
 
138
138
  ### `skip_validations`
139
139
 
140
- By default, `vagrant-bindfs` will check if the user and the group set for a binded folder exist on the virtual machine.
140
+ By default, `vagrant-bindfs` will check if the user and the group set for a bound folder exists on the virtual machine.
141
141
  If either one, the other or both of them are missing, it will warn you and not execute any bindfs command for this folder.
142
142
 
143
- To skip these validations, you can add `:user`and/or `:group` to the `config.bindfs.skip_validations` array.
143
+ To skip these validations, you can add `:user` and/or `:group` to the `config.bindfs.skip_validations` array.
144
144
 
145
145
 
146
146
  ```ruby
@@ -186,7 +186,7 @@ Mount poitns will then be destroyed (with `rm -rf`) prior to mount, unless you a
186
186
  ```ruby
187
187
  Vagrant.configure("2") do |config|
188
188
 
189
- config.bindfs.force_empty_mountpoint = true
189
+ config.bindfs.force_empty_mountpoints = true
190
190
 
191
191
  # This exemple assume two directories exist in your VM:
192
192
  # - `a/non/empty/mount/point/and/its/content`
@@ -212,7 +212,7 @@ We could also use some more specs…
212
212
 
213
213
  ### How to Test Changes
214
214
 
215
- If you've made changes to this plugin, you can easily test it locally in vagrant.
215
+ If you've made changes to this plugin, you can easily test it locally in Vagrant.
216
216
 
217
217
  Edit `Vagrantfile` and uncomment one or more of the selected test boxes.
218
218
  Then, from the root of the repo, do:
@@ -222,3 +222,5 @@ Then, from the root of the repo, do:
222
222
 
223
223
  This will spin up one or more VM and try to bindfs-mount some shares in it.
224
224
  Feel free to modify the included `Vagrantfile` or test helpers (in `test/test_helpers.rb`) to add additional boxes and test cases.
225
+ If you add a new test machine, please ensure that it will stay available and regularly updated for future tests.
226
+ We recommend to use [officialy supported boxes](https://goo.gl/LbkPVF).
@@ -5,14 +5,14 @@
5
5
 
6
6
  # Uncomment machines you want to test
7
7
  test_machines = {
8
- # debian: { box: "bento/debian-9" },
9
- # ubuntu: { box: "bento/ubuntu-18.10" },
10
- # fedora: { box: "bento/fedora-29" },
11
- # redhat: { box: "bento/centos-7" },
12
- # gentoo: { box: "generic/gentoo" },
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" },
12
+ # gentoo: { box: "generic/gentoo" },
13
13
 
14
14
  # The `vagrant` user group does not exist in this box.
15
- # suse: { box: "bento/opensuse-leap-42", args: { group: 'users' } },
15
+ # suse: { box: "bento/opensuse-leap-15", args: { group: 'users' } },
16
16
 
17
17
  # **This box require the Oracle VM VirtualBox Extension Pack for Virtualbox.**
18
18
  # The `vagrant` user group does not exist in this box.
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VagrantBindfs
4
4
  module Bindfs
5
- SOURCE_VERSION = '1.14.0'
5
+ SOURCE_VERSION = '1.14.7'
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'
@@ -5,11 +5,10 @@ require 'digest/sha1'
5
5
  module VagrantBindfs
6
6
  module Bindfs
7
7
  class Folder
8
- attr_reader :source
9
- attr_reader :destination
10
- attr_reader :options
11
-
12
- attr_reader :hook
8
+ attr_reader :source,
9
+ :destination,
10
+ :options,
11
+ :hook
13
12
 
14
13
  def initialize(hook, source, destination, options = {})
15
14
  @hook = hook
@@ -7,6 +7,8 @@
7
7
  "mirror": { "long": ["mirror"], "short": ["m"], "type": "option", "since": "0.0.1" },
8
8
  "mirror-only": { "long": ["mirror-only"], "short": ["M"], "type": "option", "since": "0.0.1" },
9
9
  "map": { "long": ["map"], "short": [], "type": "option", "since": "1.10" },
10
+ "map-passwd": { "long": ["map-passwd"], "short": [], "type": "option", "since": "1.14.6" },
11
+ "map-group": { "long": ["map-group"], "short": [], "type": "option", "since": "1.14.6" },
10
12
  "uid-offset": { "long": ["uid-offset"], "short": [], "type": "option", "since": "1.13.2" },
11
13
  "gid-offset": { "long": ["gid-offset"], "short": [], "type": "option", "since": "1.13.2" },
12
14
 
@@ -5,11 +5,10 @@ require 'forwardable'
5
5
  module VagrantBindfs
6
6
  module Bindfs
7
7
  class OptionSet
8
- attr_reader :version
9
-
10
- attr_reader :options
11
- attr_reader :invalid_options
12
- attr_reader :unsupported_options
8
+ attr_reader :version,
9
+ :options,
10
+ :invalid_options,
11
+ :unsupported_options
13
12
 
14
13
  include ::Enumerable
15
14
  extend ::Forwardable
@@ -101,7 +100,7 @@ module VagrantBindfs
101
100
  return true if [true, 'true', 'True', 'yes', 'Yes', 'y', 'Y', 'on', 'On', 1].include?(value)
102
101
  return false if [false, 'false', 'False', 'no', 'No', 'n', 'N', 'off', 'Off', 0].include?(value)
103
102
 
104
- !!value # rubocop:disable Style/DoubleNegation
103
+ !!value
105
104
  end
106
105
 
107
106
  class << self
@@ -6,8 +6,8 @@ module VagrantBindfs
6
6
  module Bindfs
7
7
  module Validators
8
8
  class Config
9
- attr_reader :folder
10
- attr_reader :errors
9
+ attr_reader :folder,
10
+ :errors
11
11
 
12
12
  extend ::Forwardable
13
13
  def_delegators :@folder, :source, :destination, :options
@@ -38,7 +38,7 @@ module VagrantBindfs
38
38
  end
39
39
 
40
40
  def validate_options!
41
- folder.options.invalid_options.keys.each do |option_name|
41
+ folder.options.invalid_options.each_key do |option_name|
42
42
  @errors << I18n.t(option_name.tr('-', '_'), scope: 'vagrant-bindfs.deprecations')
43
43
  end
44
44
  end
@@ -13,11 +13,11 @@ module VagrantBindfs
13
13
  machine.config.bindfs
14
14
  end
15
15
 
16
- def binded_folders(hook = nil)
17
- @binded_folders ||= begin
18
- config.binded_folders.each_with_object({}) do |(id, folder), binded|
19
- binded[id] = folder if hook.nil? || folder.hook == hook
20
- binded
16
+ def bound_folders(hook = nil)
17
+ @bound_folders ||= begin
18
+ config.bound_folders.each_with_object({}) do |(id, folder), bound|
19
+ bound[id] = folder if hook.nil? || folder.hook == hook
20
+ bound
21
21
  end
22
22
  end
23
23
  end
@@ -4,8 +4,8 @@ module VagrantBindfs
4
4
  module Vagrant
5
5
  module Actions
6
6
  class Installer
7
- attr_reader :app
8
- attr_reader :env
7
+ attr_reader :app,
8
+ :env
9
9
 
10
10
  include Concerns::Machine
11
11
  include Concerns::Log
@@ -23,7 +23,7 @@ module VagrantBindfs
23
23
  protected
24
24
 
25
25
  def apply!(_env)
26
- return if binded_folders.empty?
26
+ return if bound_folders.empty?
27
27
 
28
28
  ensure_guest_is_ready_to_bind!
29
29
  end
@@ -4,9 +4,9 @@ module VagrantBindfs
4
4
  module Vagrant
5
5
  module Actions
6
6
  class Mounter
7
- attr_reader :app
8
- attr_reader :env
9
- attr_reader :hook
7
+ attr_reader :app,
8
+ :env,
9
+ :hook
10
10
 
11
11
  include Concerns::Machine
12
12
  include Concerns::Log
@@ -19,7 +19,7 @@ module VagrantBindfs
19
19
 
20
20
  def call(env)
21
21
  app.call(env)
22
- return if binded_folders(hook).empty?
22
+ return if bound_folders(hook).empty?
23
23
 
24
24
  bind_folders!
25
25
  end
@@ -28,7 +28,7 @@ module VagrantBindfs
28
28
 
29
29
  def bind_folders!
30
30
  info I18n.t('vagrant-bindfs.actions.mounter.start', hook: hook)
31
- binded_folders(hook).each_value do |folder|
31
+ bound_folders(hook).each_value do |folder|
32
32
  bind_folder!(folder)
33
33
  end
34
34
  end
@@ -61,7 +61,7 @@ module VagrantBindfs
61
61
 
62
62
  def empty_mountpoint?(folder)
63
63
  return false unless config.force_empty_mountpoints
64
- return false if folder.options.key?('o') && !folder.options['o'].match(/nonempty/).nil?
64
+ return false if folder.options.key?('o') && folder.options['o'].include?('nonempty')
65
65
 
66
66
  true
67
67
  end
@@ -35,7 +35,7 @@ module VagrantBindfs
35
35
  tar_dirname = VagrantBindfs::Bindfs.source_tar_basename(version)
36
36
 
37
37
  begin
38
- machine.communicate.execute INSTALL_SCRIPT.format(urls: tar_urls, dirname: tar_dirname)
38
+ machine.communicate.execute format(INSTALL_SCRIPT, urls: tar_urls.join('" "'), dirname: tar_dirname)
39
39
  ensure
40
40
  machine.communicate.execute('([ -f ./bindfs.tar.gz ] && rm ./bindfs.tar.gz) || true')
41
41
  machine.communicate.execute("([ -d ./#{tar_dirname} ] && rm -rf ./#{tar_dirname}) || true")
@@ -3,28 +3,29 @@
3
3
  module VagrantBindfs
4
4
  module Vagrant
5
5
  class Config < ::Vagrant.plugin('2', :config)
6
- attr_reader :debug
7
-
8
- attr_accessor :bindfs_version
9
- attr_reader :install_bindfs_from_source
10
-
11
- attr_reader :default_options
12
- attr_accessor :binded_folders
13
-
14
- attr_accessor :skip_validations
15
- attr_reader :force_empty_mountpoints
16
-
17
- def initialize
6
+ DEFAULT_OPTIONS = {
7
+ 'force-user' => 'vagrant',
8
+ 'force-group' => 'vagrant',
9
+ 'perms' => 'u=rwX:g=rD:o=rD'
10
+ }.freeze
11
+
12
+ attr_reader :debug,
13
+ :install_bindfs_from_source,
14
+ :default_options,
15
+ :force_empty_mountpoints
16
+
17
+ attr_accessor :bindfs_version,
18
+ :bound_folders,
19
+ :skip_validations
20
+
21
+ def initialize # rubocop:disable Lint/MissingSuper
18
22
  @debug = false
19
23
 
20
24
  @bindfs_version = UNSET_VALUE
21
25
  @install_bindfs_from_source = false
22
26
 
23
- @binded_folders = {}
24
- @default_options = Bindfs::OptionSet.new(nil,
25
- 'force-user' => 'vagrant',
26
- 'force-group' => 'vagrant',
27
- 'perms' => 'u=rwX:g=rD:o=rD')
27
+ @bound_folders = {}
28
+ @default_options = UNSET_VALUE
28
29
 
29
30
  @skip_validations = []
30
31
  @force_empty_mountpoints = false
@@ -50,46 +51,60 @@ module VagrantBindfs
50
51
  @force_empty_mountpoints = (value == true)
51
52
  end
52
53
 
53
- def binded_folder=(*_any_variant)
54
- raise VagrantBindfs::Vagrant::ConfigError, :binded_folders
54
+ def bound_folder=(*_any_variant)
55
+ raise VagrantBindfs::Vagrant::ConfigError, :bound_folders
55
56
  end
56
57
 
57
58
  def bind_folder(source, destination, options = {})
58
59
  hook = options.delete(:after) || :synced_folders
59
60
  folder = Bindfs::Folder.new(hook, source, destination, options)
60
- @binded_folders[folder.id] = folder
61
+ @bound_folders[folder.id] = folder
61
62
  end
62
63
 
63
64
  def merge(other) # rubocop:disable Metrics/AbcSize
64
65
  super.tap do |result|
65
- result.debug = (debug || other.debug)
66
-
67
- result_bindfs_version = [bindfs_version, other.bindfs_version].reject { |v| v == UNSET_VALUE }.min
68
- result.bindfs_version = result_bindfs_version unless result_bindfs_version.nil?
69
- result.install_bindfs_from_source = (install_bindfs_from_source || other.install_bindfs_from_source)
70
-
71
- result.default_options = default_options.merge(other.default_options)
72
- result.binded_folders = binded_folders.merge(other.binded_folders)
73
-
66
+ %i[debug force_empty_mountpoints install_bindfs_from_source].each do |boolean|
67
+ result.send("#{boolean}=", (send(boolean) || other.send(boolean)))
68
+ end
69
+ result.bound_folders = bound_folders.merge(other.bound_folders)
74
70
  result.skip_validations = (skip_validations + other.skip_validations).uniq
75
- result.force_empty_mountpoints = (force_empty_mountpoints || other.force_empty_mountpoints)
71
+
72
+ result.bindfs_version = merge_bindfs_version(other) unless merge_bindfs_version(other) == UNSET_VALUE
73
+ result.default_options = merge_default_options(other) unless merge_default_options(other) == UNSET_VALUE
76
74
  end
77
75
  end
78
76
 
79
77
  def finalize!
80
78
  @bindfs_version = :latest if @bindfs_version == UNSET_VALUE
79
+ self.default_options = DEFAULT_OPTIONS if default_options == UNSET_VALUE
81
80
  end
82
81
 
83
82
  def validate(_machine)
84
83
  errors = _detected_errors
85
84
 
86
- binded_folders.each_value do |folder|
85
+ bound_folders.each_value do |folder|
87
86
  validator = Bindfs::Validators::Config.new(folder)
88
87
  errors << validator.errors unless validator.valid?
89
88
  end
90
89
 
91
90
  { 'vagrant-bindfs' => errors.flatten }
92
91
  end
92
+
93
+ protected
94
+
95
+ def merge_bindfs_version(other)
96
+ return other.bindfs_version if bindfs_version == UNSET_VALUE
97
+ return bindfs_version if other.bindfs_version == UNSET_VALUE
98
+
99
+ [bindfs_version, other.bindfs_version].reject { |v| v == UNSET_VALUE }.min
100
+ end
101
+
102
+ def merge_default_options(other)
103
+ return other.default_options if default_options == UNSET_VALUE
104
+ return default_options if other.default_options == UNSET_VALUE
105
+
106
+ default_options.merge(other.default_options)
107
+ end
93
108
  end
94
109
  end
95
110
  end
@@ -34,7 +34,7 @@ module VagrantBindfs
34
34
  end
35
35
 
36
36
  def synced_folders_hook
37
- if ::Vagrant::Action::Builtin.const_defined? :NFS
37
+ if ::Vagrant::Action::Builtin.const_defined?(:NFS, false)
38
38
  ::Vagrant::Action::Builtin::NFS
39
39
  else
40
40
  ::Vagrant::Action::Builtin::SyncedFolders
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VagrantBindfs
4
- VERSION = '1.1.3'
4
+ VERSION = '1.1.8'
5
5
  end
@@ -42,7 +42,7 @@ en:
42
42
  errors:
43
43
  package_manager_missing: "No package manager found on the virtual machine. You may use an unsupported flavour of Linux."
44
44
  config:
45
- binded_folders: "config.bindfs.binded_folders= must no be called. Use config.bindfs.bind_folders instead."
45
+ bound_folders: "config.bindfs.bound_folders= must no be called. Use config.bindfs.bind_folders instead."
46
46
  conflicting_options: "Another option has already been set for the canonical name '%{name}'"
47
47
 
48
48
  bindfs:
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-bindfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gaël-Ian Havard
8
8
  - Igor Serebryany
9
9
  - Thomas Boerger
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-06-20 00:00:00.000000000 Z
13
+ date: 2020-09-04 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: " A Vagrant plugin to automate bindfs mount in the VM. This allow you
16
16
  to change owner, group and permissions on files and, for example, work around NFS
@@ -86,7 +86,7 @@ licenses:
86
86
  metadata:
87
87
  allowed_push_host: https://rubygems.org
88
88
  issue_tracker: https://github.com/gael-ian/vagrant-bindfs/issues
89
- post_install_message:
89
+ post_install_message:
90
90
  rdoc_options: []
91
91
  require_paths:
92
92
  - lib
@@ -94,19 +94,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '2.2'
98
- - - "<"
99
- - !ruby/object:Gem::Version
100
- version: '2.7'
97
+ version: '2.4'
101
98
  required_rubygems_version: !ruby/object:Gem::Requirement
102
99
  requirements:
103
100
  - - ">="
104
101
  - !ruby/object:Gem::Version
105
102
  version: 1.3.6
106
103
  requirements: []
107
- rubyforge_project:
108
- rubygems_version: 2.5.1
109
- signing_key:
104
+ rubygems_version: 3.0.3
105
+ signing_key:
110
106
  specification_version: 4
111
107
  summary: A Vagrant plugin to automate bindfs mount in the VM
112
108
  test_files: