vagrant-bindfs 1.1.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -3
- data/Rakefile +1 -1
- data/Vagrantfile +3 -3
- data/lib/vagrant-bindfs.rb +1 -1
- data/lib/vagrant-bindfs/bindfs.rb +1 -1
- data/lib/vagrant-bindfs/bindfs/command.rb +1 -0
- data/lib/vagrant-bindfs/bindfs/option_definitions.json +1 -0
- data/lib/vagrant-bindfs/bindfs/option_set.rb +5 -1
- data/lib/vagrant-bindfs/bindfs/validators/config.rb +0 -5
- data/lib/vagrant-bindfs/bindfs/validators/runtime.rb +2 -0
- data/lib/vagrant-bindfs/vagrant/actions/installer.rb +1 -0
- data/lib/vagrant-bindfs/vagrant/actions/mounter.rb +3 -1
- data/lib/vagrant-bindfs/vagrant/capabilities.rb +1 -1
- data/lib/vagrant-bindfs/vagrant/capabilities/redhat/bindfs.rb +1 -1
- data/lib/vagrant-bindfs/vagrant/config.rb +2 -2
- data/lib/vagrant-bindfs/vagrant/plugin.rb +1 -1
- data/lib/vagrant-bindfs/version.rb +1 -1
- data/locales/en.yml +0 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9551f633610c3b6c502adf56678f00dc43236df7
|
4
|
+
data.tar.gz: 075c79a331c35a0202f0651e8ae6675bf93345f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5ec0bba133b68e41e36c00973cdae4b11987c9b75ecef635e681caf06dd7e76d221d27c13caad6fd90399b9872232a83934d9e1528395c7f2004de8f2c2609f
|
7
|
+
data.tar.gz: bb9345cbd978ad3a368106107d217e2ecb73c1c82611312153bf2f2ab5fbc2e0534479a131abc16adcc33bbdc2653edb1dce67df1d7bb4247e2912970eb702a6
|
data/README.md
CHANGED
@@ -28,8 +28,12 @@ _Note that `map_uid` and `map_gid` NFS options can be used to set the identity u
|
|
28
28
|
|
29
29
|
## Installation
|
30
30
|
|
31
|
-
vagrant-bindfs is distributed as a Ruby gem.
|
32
|
-
You can install it as any other Vagrant plugin with
|
31
|
+
vagrant-bindfs is distributed as a Ruby gem.
|
32
|
+
You can install it as any other Vagrant plugin with:
|
33
|
+
|
34
|
+
```bash
|
35
|
+
vagrant plugin install vagrant-bindfs
|
36
|
+
```
|
33
37
|
|
34
38
|
|
35
39
|
## Usage
|
@@ -83,7 +87,7 @@ Vagrant.configure("2") do |config|
|
|
83
87
|
end
|
84
88
|
```
|
85
89
|
|
86
|
-
Remember that Vagrant use `/vagrant` on guest side
|
90
|
+
Remember that Vagrant use `/vagrant` on guest side to automatically share your project directory (the one with the Vagrantfile), in particular for provisioning and configuration purposes. Binding a folder to `/vagrant` or one of its subfolders may expose unexpected behaviors.
|
87
91
|
|
88
92
|
### bindfs support
|
89
93
|
|
data/Rakefile
CHANGED
data/Vagrantfile
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
# Uncomment machines you want to test
|
7
7
|
test_machines = {
|
8
8
|
# debian: { box: "bento/debian-9" },
|
9
|
-
# ubuntu: { box: "bento/ubuntu-
|
10
|
-
# fedora: { box: "bento/fedora-
|
9
|
+
# ubuntu: { box: "bento/ubuntu-18.10" },
|
10
|
+
# fedora: { box: "bento/fedora-29" },
|
11
11
|
# redhat: { box: "bento/centos-7" },
|
12
12
|
# gentoo: { box: "generic/gentoo" },
|
13
13
|
|
@@ -24,7 +24,7 @@ test_machines = {
|
|
24
24
|
# documentation. See https://goo.gl/LbkPVF
|
25
25
|
}
|
26
26
|
|
27
|
-
require File.expand_path('
|
27
|
+
require File.expand_path('spec/vagrantfile_helper', __dir__)
|
28
28
|
|
29
29
|
Vagrant.configure('2') do |config|
|
30
30
|
# Common configuration
|
data/lib/vagrant-bindfs.rb
CHANGED
@@ -11,7 +11,7 @@ module VagrantBindfs
|
|
11
11
|
autoload :Bindfs, 'vagrant-bindfs/bindfs'
|
12
12
|
end
|
13
13
|
|
14
|
-
I18n.load_path << File.expand_path('
|
14
|
+
I18n.load_path << File.expand_path('../locales/en.yml', __dir__)
|
15
15
|
I18n.reload!
|
16
16
|
|
17
17
|
require 'vagrant-bindfs/vagrant/plugin'
|
@@ -63,6 +63,7 @@
|
|
63
63
|
"ctime-from-mtime": { "long": ["ctime-from-mtime"], "short": [], "type": "flag", "since": "0.0.1" },
|
64
64
|
"enabe-ioctl": { "long": ["enable-ioctl"], "short": [], "type": "flag", "since": "1.13.2" },
|
65
65
|
"block-devices-as-files": { "long": ["block-devices-as-files"], "short": [], "type": "flag", "since": "1.13.7" },
|
66
|
+
"forward-odirect": { "long": ["forward-odirect"], "short": [], "type": "option", "since": "1.14.0" },
|
66
67
|
|
67
68
|
// FUSE options
|
68
69
|
"o": { "long": [], "short": ["o"], "type": "option", "since": "0.0.1" },
|
@@ -76,6 +76,7 @@ module VagrantBindfs
|
|
76
76
|
|
77
77
|
def extract_options_by_names!(names, to)
|
78
78
|
return {} if names.empty?
|
79
|
+
|
79
80
|
names.each { |name| to[name] = @options.delete(name) }
|
80
81
|
end
|
81
82
|
|
@@ -91,18 +92,20 @@ module VagrantBindfs
|
|
91
92
|
|
92
93
|
def cast_value_as_option(value)
|
93
94
|
return nil if value.respond_to?(:nil?) && value.nil?
|
95
|
+
|
94
96
|
(value.respond_to?(:to_s) ? value.to_s : value)
|
95
97
|
end
|
96
98
|
|
97
99
|
def cast_value_as_flag(value)
|
98
100
|
return true if [true, 'true', 'True', 'yes', 'Yes', 'y', 'Y', 'on', 'On', 1].include?(value)
|
99
101
|
return false if [false, 'false', 'False', 'no', 'No', 'n', 'N', 'off', 'Off', 0].include?(value)
|
102
|
+
|
100
103
|
!!value
|
101
104
|
end
|
102
105
|
|
103
106
|
class << self
|
104
107
|
def bindfs_options
|
105
|
-
@bindfs_options ||= JSON.parse(File.read(File.expand_path('
|
108
|
+
@bindfs_options ||= JSON.parse(File.read(File.expand_path('option_definitions.json', __dir__)))
|
106
109
|
end
|
107
110
|
|
108
111
|
def supported_options(version)
|
@@ -115,6 +118,7 @@ module VagrantBindfs
|
|
115
118
|
def compatible_name_for_version(option_name, version)
|
116
119
|
return 'user' if option_name == 'force-user' && version_lower_than(version, '1.12')
|
117
120
|
return 'group' if option_name == 'force-group' && version_lower_than(version, '1.12')
|
121
|
+
|
118
122
|
option_name
|
119
123
|
end
|
120
124
|
|
@@ -35,7 +35,6 @@ module VagrantBindfs
|
|
35
35
|
def validate_destination!
|
36
36
|
@errors << I18n.t('vagrant-bindfs.validations.destination_path_required') if destination.empty?
|
37
37
|
@errors << I18n.t('vagrant-bindfs.validations.path_must_be_absolute', path: destination) if relative_path?(destination)
|
38
|
-
@errors << I18n.t('vagrant-bindfs.validations.destination_path_reserved', path: destination) if reserved_path?(destination)
|
39
38
|
end
|
40
39
|
|
41
40
|
def validate_options!
|
@@ -49,10 +48,6 @@ module VagrantBindfs
|
|
49
48
|
def relative_path?(path)
|
50
49
|
Pathname.new(path).relative?
|
51
50
|
end
|
52
|
-
|
53
|
-
def reserved_path?(path)
|
54
|
-
!Pathname.new(path).to_path.match(%r{^\/vagrant\/}).nil?
|
55
|
-
end
|
56
51
|
end
|
57
52
|
end
|
58
53
|
end
|
@@ -43,12 +43,14 @@ module VagrantBindfs
|
|
43
43
|
def validate_user
|
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
48
|
end
|
48
49
|
|
49
50
|
def validate_group
|
50
51
|
return if machine.config.bindfs.skip_validations.include?(:group)
|
51
52
|
return if machine.guest.capability(:bindfs_exists_group, options['force-group'])
|
53
|
+
|
52
54
|
@errors << I18n.t('vagrant-bindfs.validations.group_does_not_exist', group: options['force-group'])
|
53
55
|
end
|
54
56
|
end
|
@@ -20,6 +20,7 @@ module VagrantBindfs
|
|
20
20
|
def call(env)
|
21
21
|
app.call(env)
|
22
22
|
return if binded_folders(hook).empty?
|
23
|
+
|
23
24
|
bind_folders!
|
24
25
|
end
|
25
26
|
|
@@ -51,7 +52,7 @@ module VagrantBindfs
|
|
51
52
|
|
52
53
|
error I18n.t(
|
53
54
|
'vagrant-bindfs.validations.errors_found',
|
54
|
-
dest:
|
55
|
+
dest: folder.destination,
|
55
56
|
source: folder.source,
|
56
57
|
errors: validator.errors.join(' ')
|
57
58
|
)
|
@@ -61,6 +62,7 @@ module VagrantBindfs
|
|
61
62
|
def empty_mountpoint?(folder)
|
62
63
|
return false unless config.force_empty_mountpoints
|
63
64
|
return false if folder.options.key?('o') && !folder.options['o'].match(/nonempty/).nil?
|
65
|
+
|
64
66
|
true
|
65
67
|
end
|
66
68
|
|
@@ -19,7 +19,7 @@ module VagrantBindfs
|
|
19
19
|
|
20
20
|
class << self
|
21
21
|
def included(base)
|
22
|
-
capabilities = JSON.parse(File.read(File.expand_path('
|
22
|
+
capabilities = JSON.parse(File.read(File.expand_path('capabilities.json', __dir__)))
|
23
23
|
capabilities.each do |cap_name, oses|
|
24
24
|
oses.each do |os_name, module_name|
|
25
25
|
mod = module_by_name(module_name)
|
@@ -8,7 +8,7 @@ module VagrantBindfs
|
|
8
8
|
class << self
|
9
9
|
def bindfs_bindfs_search(machine)
|
10
10
|
machine.guest.capability(:bindfs_package_manager_update)
|
11
|
-
machine.communicate.test(
|
11
|
+
machine.communicate.test("[[ $(yum search bindfs 2>/dev/null | egrep -i '^bindfs\.' | wc -l) != 0 ]]")
|
12
12
|
end
|
13
13
|
|
14
14
|
def bindfs_bindfs_install(machine)
|
@@ -22,9 +22,9 @@ module VagrantBindfs
|
|
22
22
|
|
23
23
|
@binded_folders = {}
|
24
24
|
@default_options = Bindfs::OptionSet.new(nil,
|
25
|
-
'force-user'
|
25
|
+
'force-user' => 'vagrant',
|
26
26
|
'force-group' => 'vagrant',
|
27
|
-
'perms'
|
27
|
+
'perms' => 'u=rwX:g=rD:o=rD')
|
28
28
|
|
29
29
|
@skip_validations = []
|
30
30
|
@force_empty_mountpoints = false
|
data/locales/en.yml
CHANGED
@@ -28,7 +28,6 @@ en:
|
|
28
28
|
source_path_does_not_exist: "Source path '%{path}' doesn't exist"
|
29
29
|
|
30
30
|
destination_path_required: "A destination path is required as argument to bind_folder"
|
31
|
-
destination_path_reserved: "Destination path '%{path}' is part of a reserved subtree for Vagrant use"
|
32
31
|
destination_already_mounted: "Destination path '%{dest}' is already a bindfs mount"
|
33
32
|
|
34
33
|
path_must_be_absolute: "Path '%{path}' is relative but an absolute path is attended"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-bindfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gaël-Ian Havard
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-06-07 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
|
@@ -92,9 +92,12 @@ require_paths:
|
|
92
92
|
- lib
|
93
93
|
required_ruby_version: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - "
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '2.2'
|
98
|
+
- - "<"
|
96
99
|
- !ruby/object:Gem::Version
|
97
|
-
version: 2.
|
100
|
+
version: '2.7'
|
98
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
102
|
requirements:
|
100
103
|
- - ">="
|