vagrant-bindfs 0.4.11 → 0.4.12
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 +4 -4
- data/README.md +6 -10
- data/lib/vagrant-bindfs/cap/redhat/install_bindfs.rb +19 -9
- data/lib/vagrant-bindfs/config.rb +30 -10
- data/lib/vagrant-bindfs/version.rb +3 -3
- data/locales/en.yml +3 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e4f4c521a2a2619356b7466fffa5b6c577799c62
|
4
|
+
data.tar.gz: bacede149f11117d49abc53fb15a220f18826907
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4102bf7c0c8911fe0b034f8d46b0d1c338ee3abe882e0d39d23480cb51a5dee1457e2005e9fa4ea18985574953c0e2463bde4f12c1a6303efa200e07aa13c4a
|
7
|
+
data.tar.gz: 75682be67816e612f517bb224b8293cc22932b09a320168808fc566ab2143cbdcd02a09344ffde10f0b4bfb943fcfe40a6e3c1fd71ae010a26af945c95492ddc
|
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
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
|
4
|
-
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/) mount in the VM. This allow you to change owner, group and permissions on files and, for example, work around NFS share permissions issues.
|
5
4
|
|
6
5
|
|
7
6
|
## Some Background: Why `vagrant-bindfs`
|
@@ -13,7 +12,7 @@ People often recommend switching to [vagrant's VMWare-fusion provider](http://ww
|
|
13
12
|
This reportedly has better performance, but shares with symlinks [won't work](http://communities.vmware.com/thread/428199?start=0&tstart=0).
|
14
13
|
You also have to buy both the plugin and VMware Fusion.
|
15
14
|
|
16
|
-
The final recommendation, at least on Linux/OSX hosts, is to [use
|
15
|
+
The final recommendation, at least on Linux/OSX hosts, is to [use NFS](http://docs.vagrantup.com/v2/synced-folders/nfs.html).
|
17
16
|
However, an NFS mount has the same numeric permissions in the guest as in the host.
|
18
17
|
If you're on OSX, for instance, a folder owned by the default OSX user will appear to be [owned by `501:20`](https://groups.google.com/forum/?fromgroups#!topic/vagrant-up/qXXJ-AQuKQM) in the guest.
|
19
18
|
|
@@ -29,7 +28,7 @@ _Note that `map_uid` and `map_gid` NFS options can be used to set the identity u
|
|
29
28
|
|
30
29
|
## Installation
|
31
30
|
|
32
|
-
|
31
|
+
vagrant-bindfs is distributed as a Ruby gem.
|
33
32
|
You can install it as any other Vagrant plugin with `vagrant plugin install vagrant-bindfs`.
|
34
33
|
|
35
34
|
|
@@ -78,21 +77,18 @@ Vagrant.configure("2") do |config|
|
|
78
77
|
# Use vagrant-bindfs to re-mount folder
|
79
78
|
config.bindfs.bind_folder "/vagrant-nfs", "guest/mount/point"
|
80
79
|
|
81
|
-
|
82
|
-
## Share the default `vagrant` folder via NFS with your own options
|
83
|
-
config.vm.synced_folder ".", "/vagrant", type: :nfs
|
84
|
-
config.bindfs.bind_folder "/vagrant", "/vagrant"
|
85
|
-
|
86
80
|
# Bind a folder after provisioning
|
87
81
|
config.bindfs.bind_folder "/vagrant-after-provision", "another/guest/mount/point", after: :provision
|
88
82
|
|
89
83
|
end
|
90
84
|
```
|
91
85
|
|
86
|
+
Remember that Vagrant use `/vagrant` on guest side as a shared directory dedicated to provisioning and configuration. Binding a folder to `/vagrant` or one of its subfolders will fail.
|
87
|
+
|
92
88
|
### bindfs support
|
93
89
|
|
94
90
|
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.
|
91
|
+
vagrant-bindfs is compatible with bindfs from version 1.9 to 1.13.4.
|
96
92
|
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.
|
97
93
|
|
98
94
|
Both long arguments and shorthand are supported.
|
@@ -14,26 +14,36 @@ module VagrantPlugins
|
|
14
14
|
else
|
15
15
|
comm.sudo("yum -y install fuse fuse-devel gcc wget tar make")
|
16
16
|
comm.sudo <<-SHELL
|
17
|
-
for u in "#{
|
17
|
+
for u in "#{source_urls(machine).join('" "')}"; do
|
18
18
|
if wget -q --spider $u; then
|
19
19
|
url=$u;
|
20
20
|
break;
|
21
21
|
fi;
|
22
22
|
done;
|
23
|
-
[ -n "$url" ]
|
24
|
-
wget $url -O bindfs.tar.gz
|
25
|
-
tar --overwrite -zxvf bindfs.tar.gz
|
26
|
-
[ -d ./bindfs-#{
|
27
|
-
cd bindfs-#{
|
28
|
-
./configure
|
29
|
-
make
|
30
|
-
make install
|
23
|
+
[ -n "$url" ] && \
|
24
|
+
wget $url -O bindfs.tar.gz && \
|
25
|
+
tar --overwrite -zxvf bindfs.tar.gz && \
|
26
|
+
[ -d ./bindfs-#{source_version(machine)} ] && \
|
27
|
+
cd bindfs-#{source_version(machine)} && \
|
28
|
+
./configure && \
|
29
|
+
make && \
|
30
|
+
make install && \
|
31
31
|
ln -s /usr/local/bin/bindfs /usr/bin
|
32
32
|
SHELL
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
+
protected
|
38
|
+
|
39
|
+
def source_urls(machine)
|
40
|
+
SOURCE_URLS.map{ |url| url.gsub('%{source_version}', source_version(machine)) }
|
41
|
+
end
|
42
|
+
|
43
|
+
def source_version(machine)
|
44
|
+
machine.config.bindfs.source_version
|
45
|
+
end
|
46
|
+
|
37
47
|
end
|
38
48
|
end
|
39
49
|
end
|
@@ -1,17 +1,21 @@
|
|
1
|
-
require
|
2
|
-
require 'vagrant/errors'
|
3
|
-
require 'vagrant/util/template_renderer'
|
1
|
+
require "vagrant"
|
4
2
|
|
5
3
|
module VagrantPlugins
|
6
4
|
module Bindfs
|
7
5
|
class Config < Vagrant.plugin("2", :config)
|
8
|
-
|
6
|
+
|
7
|
+
attr_accessor :debug
|
8
|
+
attr_accessor :source_version
|
9
|
+
|
10
|
+
attr_accessor :default_options
|
11
|
+
attr_accessor :bind_folders
|
9
12
|
|
10
13
|
def initialize
|
11
|
-
@
|
12
|
-
@
|
13
|
-
|
14
|
-
@
|
14
|
+
@debug = UNSET_VALUE
|
15
|
+
@source_version = UNSET_VALUE
|
16
|
+
|
17
|
+
@default_options = UNSET_VALUE
|
18
|
+
@bind_folders = {}
|
15
19
|
end
|
16
20
|
|
17
21
|
def default_options(new_values = {})
|
@@ -44,8 +48,17 @@ module VagrantPlugins
|
|
44
48
|
end
|
45
49
|
|
46
50
|
def finalize!
|
47
|
-
|
48
|
-
|
51
|
+
if @debug == UNSET_VALUE
|
52
|
+
@debug = false
|
53
|
+
end
|
54
|
+
|
55
|
+
if @source_version == UNSET_VALUE
|
56
|
+
@source_version = VagrantPlugins::Bindfs::SOURCE_VERSION
|
57
|
+
end
|
58
|
+
|
59
|
+
if @default_options == UNSET_VALUE
|
60
|
+
@default_options = {}
|
61
|
+
end
|
49
62
|
end
|
50
63
|
|
51
64
|
def validate!(machine)
|
@@ -82,6 +95,13 @@ module VagrantPlugins
|
|
82
95
|
path: options[:source_path]
|
83
96
|
)
|
84
97
|
end
|
98
|
+
|
99
|
+
unless Pathname.new(options[:dest_path]).to_path.match(/^\/vagrant/).nil?
|
100
|
+
errors << I18n.t(
|
101
|
+
"vagrant.config.bindfs.errors.destination_path_reserved",
|
102
|
+
path: options[:dest_path]
|
103
|
+
)
|
104
|
+
end
|
85
105
|
end
|
86
106
|
|
87
107
|
if errors.any?
|
@@ -1,12 +1,12 @@
|
|
1
1
|
module VagrantPlugins
|
2
2
|
module Bindfs
|
3
3
|
|
4
|
-
VERSION = "0.4.
|
4
|
+
VERSION = "0.4.12"
|
5
5
|
|
6
6
|
SOURCE_VERSION = "1.13.4"
|
7
7
|
SOURCE_URLS = [
|
8
|
-
"http://bindfs.org/downloads/bindfs
|
9
|
-
"http://bindfs.dnsalias.net/downloads/bindfs
|
8
|
+
"http://bindfs.org/downloads/bindfs-%{source_version}.tar.gz",
|
9
|
+
"http://bindfs.dnsalias.net/downloads/bindfs-%{source_version}.tar.gz"
|
10
10
|
]
|
11
11
|
|
12
12
|
end
|
data/locales/en.yml
CHANGED
@@ -13,8 +13,9 @@ en:
|
|
13
13
|
errors:
|
14
14
|
invalid_hook: "Invalid hook specified. Must use one of %{hooks}"
|
15
15
|
no_path_supplied: "You must pass a destination and a source path as arguments"
|
16
|
-
destination_path_relative: "Destination path is relative for bind whatever"
|
17
|
-
|
16
|
+
destination_path_relative: "Destination path %{path} is relative for bind whatever"
|
17
|
+
destination_path_reserved: "Destination path %{path} is part of a reserved subtree for Vagrant use"
|
18
|
+
source_path_relative: "Source path %{path} is relative for bind whatever"
|
18
19
|
source_path_not_exist: "Cannot bind source path %{path} because it doesn't exist"
|
19
20
|
user_not_exist: "Cannot bind to user '%{user}' because it doesn't exist"
|
20
21
|
group_not_exist: "Cannot bind to group '%{group}' because it doesn't exist"
|
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: 0.4.
|
4
|
+
version: 0.4.12
|
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: 2016-
|
13
|
+
date: 2016-11-18 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
|
@@ -63,7 +63,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
63
63
|
requirements:
|
64
64
|
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
66
|
+
version: 2.0.0
|
67
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - ">="
|