vagrant-bindfs 1.1.5 → 1.1.9

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
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: