vagrant-bindfs 1.1.5 → 1.1.9

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: 0c2eea3a0e7cf3a24836af90d8b9c1f85b6b172dfdc39bb94e748060ce51bb26
4
- data.tar.gz: 6193954f74c1128a7d6e5fbcc94f58abf5ab2506620c9caa32a3ee44dedfe79f
3
+ metadata.gz: 800a3b50cbd19c5884f697e0957aab4bf0daa59eda7ab32cc99ba27ad71b5c57
4
+ data.tar.gz: ae67d5c8a1cada029ef51fa381abdb31b5f7ad10aac0620b842f83cb263957de
5
5
  SHA512:
6
- metadata.gz: f0fbc3b99ed572bfe89bef90b713521eaba93e41a5ffa2f97cfc22d8f11f8e8d76318487a7860c1fdaf062ad3c47925db55697cd7606e867f1ae5f74527fabaf
7
- data.tar.gz: 3d050014188a339be0994a8117591c6cd96490c9d6ab2af34cc61ebffc030b657c12a1e3141ca41a472251556a8cbaa27c10b442993a937eb1a76103a56e8589
6
+ metadata.gz: d9e690f89355198da51afe1741be3c0e8c93cbe2fb5c934b6517d5e2973919c3e54c8990789f7a1ddb900c4116ecdab32cb6a09405b2f9d042d4aa7656f7e7e0
7
+ data.tar.gz: a24dec7d238c4fc61a3689030ab4e8807ecbbf236af2bed3b1f008877998a4994c8f27ffc9e4cc17d410d362b8088c0da9803aab5d2aa6d8eb0d4f1dea562ba4
data/README.md CHANGED
@@ -92,7 +92,7 @@ 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.14.2.
95
+ vagrant-bindfs is compatible with bindfs from version 1.9 to 1.14.7.
96
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.
@@ -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`
@@ -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,15 +5,14 @@ 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
16
- def_delegators :@options, :each, :[], :keys, :key?
15
+ def_delegators :@options, :each, :[], :keys, :key?, :to_h
17
16
 
18
17
  def initialize(version = nil, options = {})
19
18
  @version = version
@@ -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
@@ -2,7 +2,7 @@
2
2
 
3
3
  module VagrantBindfs
4
4
  module Bindfs
5
- SOURCE_VERSION = '1.14.2'
5
+ SOURCE_VERSION = '1.15.1'
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'
@@ -14,11 +14,9 @@ module VagrantBindfs
14
14
  end
15
15
 
16
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
- end
17
+ @bound_folders ||= config.bound_folders.each_with_object({}) do |(id, folder), bound|
18
+ bound[id] = folder if hook.nil? || folder.hook == hook
19
+ bound
22
20
  end
23
21
  end
24
22
 
@@ -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
@@ -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
@@ -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
@@ -27,7 +27,7 @@ module VagrantBindfs
27
27
  # Ensure equery is installed
28
28
  comm.sudo('emerge app-portage/gentoolkit')
29
29
  comm.sudo("equery -q list -po -F '$fullversion' #{bindfs_package_name} || true") do |_, output|
30
- output.strip.gsub(/\s+/, ' ').split(' ').each do |package_version|
30
+ output.strip.gsub(/\s+/, ' ').split.each do |package_version|
31
31
  return package_version unless package_version.match(/^#{version}/).nil?
32
32
  end
33
33
  end
@@ -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 :bound_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
27
  @bound_folders = {}
24
- @default_options = Bindfs::OptionSet.new(nil,
25
- 'force-user' => 'vagrant',
26
- 'force-group' => 'vagrant',
27
- 'perms' => 'u=rwX:g=rD:o=rD')
28
+ @default_options = UNSET_VALUE
28
29
 
29
30
  @skip_validations = []
30
31
  @force_empty_mountpoints = false
@@ -62,22 +63,20 @@ module VagrantBindfs
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)
66
+ %i[debug force_empty_mountpoints install_bindfs_from_source].each do |boolean|
67
+ result.send("#{boolean}=", (send(boolean) || other.send(boolean)))
68
+ end
72
69
  result.bound_folders = bound_folders.merge(other.bound_folders)
73
-
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)
@@ -90,6 +89,22 @@ module VagrantBindfs
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
@@ -25,16 +25,14 @@ module VagrantBindfs
25
25
 
26
26
  class << self
27
27
  def hooks
28
- @hooks ||= begin
29
- {
30
- synced_folders: synced_folders_hook,
31
- provision: ::Vagrant::Action::Builtin::Provision
32
- }
33
- end
28
+ @hooks ||= {
29
+ synced_folders: synced_folders_hook,
30
+ provision: ::Vagrant::Action::Builtin::Provision
31
+ }
34
32
  end
35
33
 
36
34
  def synced_folders_hook
37
- if ::Vagrant::Action::Builtin.const_defined? :NFS
35
+ if ::Vagrant::Action::Builtin.const_defined?(:NFS, false)
38
36
  ::Vagrant::Action::Builtin::NFS
39
37
  else
40
38
  ::Vagrant::Action::Builtin::SyncedFolders
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VagrantBindfs
4
- VERSION = '1.1.5'
4
+ VERSION = '1.1.9'
5
5
  end
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.5
4
+ version: 1.1.9
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-12-23 00:00:00.000000000 Z
13
+ date: 2021-09-21 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,18 +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
- rubygems_version: 3.0.3
108
- signing_key:
104
+ rubygems_version: 3.1.2
105
+ signing_key:
109
106
  specification_version: 4
110
107
  summary: A Vagrant plugin to automate bindfs mount in the VM
111
108
  test_files: