vagrant-bindfs 0.4.14 → 1.0.0

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.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +66 -4
  3. data/Rakefile +11 -7
  4. data/Vagrantfile +10 -8
  5. data/lib/vagrant-bindfs.rb +10 -16
  6. data/lib/vagrant-bindfs/bindfs.rb +15 -0
  7. data/lib/vagrant-bindfs/bindfs/command.rb +47 -0
  8. data/lib/vagrant-bindfs/bindfs/folder.rb +38 -0
  9. data/lib/vagrant-bindfs/bindfs/option_definitions.json +67 -0
  10. data/lib/vagrant-bindfs/bindfs/option_set.rb +105 -0
  11. data/lib/vagrant-bindfs/bindfs/validators.rb +9 -0
  12. data/lib/vagrant-bindfs/bindfs/validators/config.rb +58 -0
  13. data/lib/vagrant-bindfs/bindfs/validators/runtime.rb +56 -0
  14. data/lib/vagrant-bindfs/vagrant.rb +12 -0
  15. data/lib/vagrant-bindfs/vagrant/actions.rb +11 -0
  16. data/lib/vagrant-bindfs/vagrant/actions/concerns.rb +11 -0
  17. data/lib/vagrant-bindfs/vagrant/actions/concerns/log.rb +34 -0
  18. data/lib/vagrant-bindfs/vagrant/actions/concerns/machine.rb +31 -0
  19. data/lib/vagrant-bindfs/vagrant/actions/installer.rb +99 -0
  20. data/lib/vagrant-bindfs/vagrant/actions/mounter.rb +65 -0
  21. data/lib/vagrant-bindfs/vagrant/capabilities.rb +108 -0
  22. data/lib/vagrant-bindfs/vagrant/capabilities/all.rb +12 -0
  23. data/lib/vagrant-bindfs/vagrant/capabilities/all/bindfs.rb +53 -0
  24. data/lib/vagrant-bindfs/vagrant/capabilities/all/package_manager.rb +17 -0
  25. data/lib/vagrant-bindfs/vagrant/capabilities/all/system_checks.rb +20 -0
  26. data/lib/vagrant-bindfs/vagrant/capabilities/darwin.rb +13 -0
  27. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/bindfs.rb +33 -0
  28. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/fuse.rb +32 -0
  29. data/lib/vagrant-bindfs/vagrant/capabilities/darwin/package_manager.rb +24 -0
  30. data/lib/vagrant-bindfs/{cap/darwin/checks.rb → vagrant/capabilities/darwin/system_checks.rb} +7 -8
  31. data/lib/vagrant-bindfs/vagrant/capabilities/debian.rb +12 -0
  32. data/lib/vagrant-bindfs/vagrant/capabilities/debian/bindfs.rb +39 -0
  33. data/lib/vagrant-bindfs/vagrant/capabilities/debian/fuse.rb +16 -0
  34. data/lib/vagrant-bindfs/vagrant/capabilities/debian/package_manager.rb +20 -0
  35. data/lib/vagrant-bindfs/vagrant/capabilities/linux.rb +12 -0
  36. data/lib/vagrant-bindfs/vagrant/capabilities/linux/fuse.rb +24 -0
  37. data/lib/vagrant-bindfs/vagrant/capabilities/linux/package_manager.rb +16 -0
  38. data/lib/vagrant-bindfs/vagrant/capabilities/linux/system_checks.rb +26 -0
  39. data/lib/vagrant-bindfs/vagrant/capabilities/redhat.rb +12 -0
  40. data/lib/vagrant-bindfs/vagrant/capabilities/redhat/bindfs.rb +39 -0
  41. data/lib/vagrant-bindfs/vagrant/capabilities/redhat/fuse.rb +17 -0
  42. data/lib/vagrant-bindfs/vagrant/capabilities/redhat/package_manager.rb +20 -0
  43. data/lib/vagrant-bindfs/vagrant/capabilities/suse.rb +12 -0
  44. data/lib/vagrant-bindfs/vagrant/capabilities/suse/bindfs.rb +41 -0
  45. data/lib/vagrant-bindfs/vagrant/capabilities/suse/fuse.rb +17 -0
  46. data/lib/vagrant-bindfs/vagrant/capabilities/suse/package_manager.rb +20 -0
  47. data/lib/vagrant-bindfs/vagrant/capabilities/ubuntu.rb +10 -0
  48. data/lib/vagrant-bindfs/vagrant/capabilities/ubuntu/fuse.rb +23 -0
  49. data/lib/vagrant-bindfs/vagrant/config.rb +86 -0
  50. data/lib/vagrant-bindfs/vagrant/errors.rb +12 -0
  51. data/lib/vagrant-bindfs/vagrant/plugin.rb +43 -0
  52. data/lib/vagrant-bindfs/version.rb +3 -12
  53. data/locales/en.yml +71 -26
  54. metadata +48 -23
  55. data/lib/vagrant-bindfs/bind.rb +0 -109
  56. data/lib/vagrant-bindfs/cap/all/bindfs_installed.rb +0 -17
  57. data/lib/vagrant-bindfs/cap/all/checks.rb +0 -17
  58. data/lib/vagrant-bindfs/cap/darwin/fuse_loaded.rb +0 -19
  59. data/lib/vagrant-bindfs/cap/darwin/install_bindfs.rb +0 -61
  60. data/lib/vagrant-bindfs/cap/debian/install_bindfs.rb +0 -17
  61. data/lib/vagrant-bindfs/cap/fedora/install_bindfs.rb +0 -17
  62. data/lib/vagrant-bindfs/cap/linux/bindfs_installed.rb +0 -17
  63. data/lib/vagrant-bindfs/cap/linux/checks.rb +0 -21
  64. data/lib/vagrant-bindfs/cap/linux/enable_fuse.rb +0 -17
  65. data/lib/vagrant-bindfs/cap/linux/fuse_loaded.rb +0 -17
  66. data/lib/vagrant-bindfs/cap/redhat/install_bindfs.rb +0 -52
  67. data/lib/vagrant-bindfs/cap/suse/install_bindfs.rb +0 -17
  68. data/lib/vagrant-bindfs/cap/ubuntu/fuse_loaded.rb +0 -19
  69. data/lib/vagrant-bindfs/command.rb +0 -212
  70. data/lib/vagrant-bindfs/config.rb +0 -119
  71. data/lib/vagrant-bindfs/errors.rb +0 -7
  72. data/lib/vagrant-bindfs/plugin.rb +0 -145
  73. data/test/test_helper.rb +0 -20
@@ -1,52 +0,0 @@
1
- require "vagrant-bindfs/version"
2
-
3
- module VagrantPlugins
4
- module Bindfs
5
- module Cap
6
- module RedHat
7
- module InstallBindfs
8
- class << self
9
-
10
- def install_bindfs(machine)
11
- machine.communicate.tap do |comm|
12
- if comm.test("test 0 -eq $(sudo yum search bindfs 2>&1 >/dev/null | wc -l)")
13
- comm.sudo("yum -y install bindfs")
14
- else
15
- comm.sudo("yum -y install fuse fuse-devel gcc wget tar make")
16
- comm.sudo <<-SHELL
17
- for u in "#{source_urls(machine).join('" "')}"; do
18
- if wget -q --spider $u; then
19
- url=$u;
20
- break;
21
- fi;
22
- done;
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
- ln -s /usr/local/bin/bindfs /usr/bin
32
- SHELL
33
- end
34
- end
35
- end
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
-
47
- end
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,17 +0,0 @@
1
- module VagrantPlugins
2
- module Bindfs
3
- module Cap
4
- module Suse
5
- module InstallBindfs
6
- class << self
7
-
8
- def install_bindfs(machine)
9
- machine.communicate.sudo("zypper -n install bindfs")
10
- end
11
-
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,19 +0,0 @@
1
- module VagrantPlugins
2
- module Bindfs
3
- module Cap
4
- module Ubuntu
5
- module FuseLoaded
6
- class << self
7
-
8
- def fuse_loaded(machine)
9
- # Ubuntu 6.10 and after automatically load fuse.
10
- # Just check if it is installed
11
- machine.communicate.test("test -e /dev/fuse")
12
- end
13
-
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,212 +0,0 @@
1
- module VagrantPlugins
2
- module Bindfs
3
- class Command
4
-
5
- attr_reader :source
6
- attr_reader :destination
7
- attr_reader :arguments
8
-
9
- def initialize(env, options)
10
- @env = env
11
- @machine = env[:machine]
12
- options = normalize_keys(options)
13
-
14
- @source = options.delete("source-path")
15
- @destination = options.delete("dest-path")
16
- @arguments = arguments_for(default_options.merge(options))
17
- end
18
-
19
- def build
20
- [ "bindfs", arguments.join(" "), source, destination ].compact.join(" ")
21
- end
22
-
23
- def user
24
- @arguments.join(' ')[/--(?:force-)?user=([^\s]+)/, 1]
25
- end
26
-
27
- def group
28
- @arguments.join(' ')[/--(?:force-)?group=([^\s]+)/, 1]
29
- end
30
-
31
- protected
32
-
33
- def arguments_for(options)
34
- available_options.reduce([]) do |args, (name, definition)|
35
-
36
- short = definition[:short].detect{ |k| options.key?(k) }
37
- long = definition[:long].detect{ |k| options.key?(k) }
38
- value = case true
39
- when !short.nil? then options[short]
40
- when !long.nil? then options[long]
41
- else definition[:default]
42
- end
43
-
44
- args << format_argument(name, definition, value) unless value.nil?
45
- args
46
- end.compact
47
- end
48
-
49
- def format_argument(name, definition, value)
50
- if definition[:type] == :flag && !!value
51
- return "-#{name}" if 0 == definition[:long].size # Shorthand only options
52
- return "--#{name}"
53
- end
54
- if definition[:type] == :option
55
- return "-#{name} #{value}" if 0 == definition[:long].size # Shorthand only options
56
- return "--#{name}=#{value}"
57
- end
58
- end
59
-
60
- def normalize_keys(opts)
61
- {}.tap do |hash|
62
- opts.each do |key, value|
63
- hash[key.to_s.gsub("_", "-")] = value
64
- end
65
- end
66
- end
67
-
68
- def default_options
69
- @default_options ||= normalize_keys(@machine.config.bindfs.default_options)
70
- end
71
-
72
- # TODO: Update after each bindfs release
73
- def available_options
74
- @available_options ||= begin
75
- options = {
76
- # File ownership
77
- "force-user" => { long: ["force-user", "user", "owner"], short: ["u"], type: :option, default: "vagrant" },
78
- "force-group" => { long: ["force-group", "group"], short: ["g"], type: :option, default: "vagrant" },
79
- "perms" => { long: ["perms"], short: ["p"], type: :option, default: "u=rwX:g=rD:o=rD" },
80
- "mirror" => { long: ["mirror"], short: ["m"], type: :option, default: nil },
81
- "mirror-only" => { long: ["mirror-only"], short: ["M"], type: :option, default: nil },
82
- "map" => { long: ["map"], short: [], type: :option, default: nil },
83
- "uid-offset" => { long: ["uid-offset"], short: [], type: :option, default: nil },
84
- "gid-offset" => { long: ["gid-offset"], short: [], type: :option, default: nil },
85
-
86
- # File creation policy
87
- "create-as-user" => { long: ["create-as-user"], short: [], type: :flag, default: false },
88
- "create-as-mounter" => { long: ["create-as-mounter"], short: [], type: :flag, default: false },
89
- "create-for-user" => { long: ["create-for-user"], short: [], type: :option, default: nil },
90
- "create-for-group" => { long: ["create-for-group"], short: [], type: :option, default: nil },
91
- "create-with-perms" => { long: ["create-with-perms"], short: [], type: :option, default: nil },
92
-
93
- # Chown policy
94
- "chown-normal" => { long: ["chown-normal"], short: [], type: :flag, default: false },
95
- "chown-ignore" => { long: ["chown-ignore"], short: [], type: :flag, default: false },
96
- "chown-deny" => { long: ["chown-deny"], short: [], type: :flag, default: false },
97
-
98
- # Chgrp policy
99
- "chgrp-normal" => { long: ["chgrp-normal"], short: [], type: :flag, default: false },
100
- "chgrp-ignore" => { long: ["chgrp-ignore"], short: [], type: :flag, default: false },
101
- "chgrp-deny" => { long: ["chgrp-deny"], short: [], type: :flag, default: false },
102
-
103
- # Chmod policy
104
- "chmod-normal" => { long: ["chmod-normal"], short: [], type: :flag, default: false },
105
- "chmod-ignore" => { long: ["chmod-ignore"], short: [], type: :flag, default: false },
106
- "chmod-deny" => { long: ["chmod-deny"], short: [], type: :flag, default: false },
107
- "chmod-filter" => { long: ["chmod-filter"], short: [], type: :option, default: nil },
108
- "chmod-allow-x" => { long: ["chmod-allow-x"], short: [], type: :flag, default: false },
109
-
110
- # Extended attribute policy
111
- "xattr-none" => { long: ["xattr-none"], short: [], type: :flag, default: false },
112
- "xattr-ro" => { long: ["xattr-ro"], short: [], type: :flag, default: false },
113
- "xattr-rw" => { long: ["xattr-rw"], short: [], type: :flag, default: false },
114
-
115
- # Rate limits
116
- "read-rate" => { long: ["read-rate"], short: [], type: :option, default: nil },
117
- "write-rate" => { long: ["write-rate"], short: [], type: :option, default: nil },
118
-
119
- # Link handling
120
- "hide-hard-links" => { long: ["hide-hard-links"], short: [], type: :flag, default: false },
121
- "resolve-symlinks" => { long: ["resolve-symlinks"], short: [], type: :flag, default: false },
122
- "resolve-symlink-policy" => { long: ["resolve-symlink-policy"], short: [], type: :option, default: nil },
123
-
124
- # Multithreading
125
- "multithreaded" => { long: ["multithreaded"], short: [], type: :flag, default: false },
126
- "enable-lock-forwarding" => { long: ["enable-lock-forwarding"], short: [], type: :flag, default: false },
127
- "disable-lock-forwarding" => { long: ["disable-lock-forwarding"], short: [], type: :flag, default: false },
128
-
129
- # Miscellaneous
130
- "no-allow-other" => { long: ["no-allow-other"], short: ["n"], type: :flag, default: false },
131
- "realistic-permissions" => { long: ["realistic-permissions"], short: [], type: :flag, default: false },
132
- "ctime-from-mtime" => { long: ["ctime-from-mtime"], short: [], type: :flag, default: false },
133
- "enabe-ioctl" => { long: ["enable-ioctl"], short: [], type: :flag, default: false },
134
-
135
- # FUSE options
136
- "o" => { long: [], short: ["o"], type: :option, default: nil },
137
- "r" => { long: [], short: ["r"], type: :flag, default: false },
138
- "d" => { long: [], short: ["d"], type: :flag, default: false },
139
- "f" => { long: [], short: ["f"], type: :flag, default: false },
140
- }
141
-
142
- if bindfs_version_lower_than("1.13.2")
143
- options.delete("uid-offset")
144
- options.delete("gid-offset")
145
- options.delete("enable-ioctl")
146
- options.delete("enable-lock-forwarding")
147
- options.delete("disable-lock-forwarding")
148
- end
149
-
150
- if bindfs_version_lower_than("1.13.0")
151
- options.delete("resolve-symlinks")
152
- options.delete("resolve-symlink-policy")
153
- end
154
-
155
- if bindfs_version_lower_than("1.12.6")
156
- options.delete("read-rate")
157
- options.delete("write-rate")
158
- end
159
-
160
- if bindfs_version_lower_than("1.12.2")
161
- options.delete("chmod-filter")
162
- end
163
-
164
- if bindfs_version_lower_than("1.12")
165
- options["user"] = options.delete("force-user")
166
- options["group"] = options.delete("force-group")
167
- end
168
-
169
- if bindfs_version_lower_than("1.11")
170
- options.delete("multithreaded")
171
- end
172
-
173
- if bindfs_version_lower_than("1.10")
174
- options.delete("map")
175
- options.delete("realistic-permissions")
176
- options.delete("hide-hard-links")
177
- end
178
-
179
- # Can't track changes deeper as SVN repository was removed from https://code.google.com/p/bindfs/
180
-
181
- options
182
- end
183
- end
184
-
185
- def bindfs_version_lower_than(version)
186
- bindfs_version < Gem::Version.new(version)
187
- end
188
-
189
- def bindfs_version
190
- @bindfs_version ||= begin
191
- version = catch(:version) do
192
- [
193
- %{sudo bindfs --version | cut -d" " -f2},
194
- %{sudo -i bindfs --version | cut -d" " -f2}
195
- ].each do |command|
196
- @machine.communicate.execute(command) do |type, output|
197
- @env[:ui].info("#{command}: #{output.inspect}") if @machine.config.bindfs.debug
198
-
199
- version = output.strip
200
- throw(:version, Gem::Version.new(version)) if version.length > 0 && Gem::Version.correct?(version)
201
- end
202
- end
203
- Gem::Version.new("0.0")
204
- end
205
- @env[:ui].info("Detected bindfs version: #{version}") if @machine.config.bindfs.debug
206
- version
207
- end
208
- end
209
-
210
- end
211
- end
212
- end
@@ -1,119 +0,0 @@
1
- require "vagrant"
2
- require "vagrant-bindfs/version"
3
-
4
- module VagrantPlugins
5
- module Bindfs
6
- class Config < Vagrant.plugin("2", :config)
7
-
8
- attr_accessor :debug
9
- attr_accessor :source_version
10
-
11
- attr_accessor :default_options
12
- attr_accessor :bind_folders
13
-
14
- def initialize
15
- @debug = UNSET_VALUE
16
- @source_version = UNSET_VALUE
17
-
18
- @default_options = UNSET_VALUE
19
- @bind_folders = {}
20
- end
21
-
22
- def default_options(new_values = {})
23
- @default_options = {} if @default_options == UNSET_VALUE
24
- @default_options.merge! new_values
25
- end
26
-
27
- def bind_folder(source_path, dest_path, options = {})
28
- options[:source_path] = source_path
29
- options[:dest_path] = dest_path
30
- options[:hook] ||= options.delete(:after) || VagrantPlugins::Bindfs::Plugin.hook_names.first
31
-
32
- @bind_folders[options[:dest_path]] = options
33
- end
34
-
35
- def merge(other)
36
- super.tap do |result|
37
- result.default_options(default_options(other.default_options))
38
-
39
- new_folders = bind_folders.dup
40
- other_folders = other.bind_folders
41
-
42
- other_folders.each do |id, options|
43
- new_folders[id] ||= {}
44
- new_folders[id].merge! options
45
- end
46
-
47
- result.bind_folders = new_folders
48
- end
49
- end
50
-
51
- def finalize!
52
- if @debug == UNSET_VALUE
53
- @debug = false
54
- end
55
-
56
- if @source_version == UNSET_VALUE
57
- @source_version = VagrantPlugins::Bindfs::SOURCE_VERSION
58
- end
59
-
60
- if @default_options == UNSET_VALUE
61
- @default_options = {}
62
- end
63
- end
64
-
65
- def validate!(machine)
66
- finalize!
67
- errors = []
68
-
69
- bind_folders.each do |id, options|
70
- next if options[:disabled]
71
-
72
- unless VagrantPlugins::Bindfs::Plugin.hook_names.include?(options[:hook].to_sym)
73
- errors << I18n.t(
74
- "vagrant.config.bindfs.errors.invalid_hook",
75
- hooks: VagrantPlugins::Bindfs::Plugin.hook_names
76
- )
77
- end
78
-
79
- if options[:dest_path].nil? or options[:source_path].nil?
80
- errors << I18n.t(
81
- "vagrant.config.bindfs.errors.no_path_supplied",
82
- path: options[:dest_path]
83
- )
84
- end
85
-
86
- if Pathname.new(options[:dest_path]).relative?
87
- errors << I18n.t(
88
- "vagrant.config.bindfs.errors.destination_path_relative",
89
- path: options[:dest_path]
90
- )
91
- end
92
-
93
- if Pathname.new(options[:source_path]).relative?
94
- errors << I18n.t(
95
- "vagrant.config.bindfs.errors.source_path_relative",
96
- path: options[:source_path]
97
- )
98
- end
99
-
100
- unless Pathname.new(options[:dest_path]).to_path.match(/^\/vagrant/).nil?
101
- errors << I18n.t(
102
- "vagrant.config.bindfs.errors.destination_path_reserved",
103
- path: options[:dest_path]
104
- )
105
- end
106
- end
107
-
108
- if errors.any?
109
- rendered_errors = Vagrant::Util::TemplateRenderer.render(
110
- 'config/validation_failed',
111
- errors: { 'vagrant-bindfs' => errors }
112
- )
113
-
114
- fail Vagrant::Errors::ConfigInvalid, errors: rendered_errors
115
- end
116
- end
117
- end
118
- end
119
- end
@@ -1,7 +0,0 @@
1
- module VagrantPlugins
2
- module Bindfs
3
- class Error < Vagrant::Errors::VagrantError
4
- error_namespace("vagrant.config.bindfs.errors")
5
- end
6
- end
7
- end
@@ -1,145 +0,0 @@
1
- module VagrantPlugins
2
- module Bindfs
3
- class Plugin < Vagrant.plugin("2")
4
-
5
- name "Bindfs"
6
- description <<-DESC
7
- This plugin allows you to mount -o bind filesystems inside the guest. This is
8
- useful to change their ownership and permissions.
9
- DESC
10
-
11
-
12
- config(:bindfs) do
13
- require "vagrant-bindfs/config"
14
- Config
15
- end
16
-
17
-
18
- guest_capability("linux", "bindfs_check_user") do
19
- require "vagrant-bindfs/cap/linux/checks"
20
- Cap::Linux::Checks
21
- end
22
-
23
- guest_capability("darwin", "bindfs_check_user") do
24
- require "vagrant-bindfs/cap/darwin/checks"
25
- Cap::Darwin::Checks
26
- end
27
-
28
-
29
- guest_capability("linux", "bindfs_check_group") do
30
- require "vagrant-bindfs/cap/linux/checks"
31
- Cap::Linux::Checks
32
- end
33
-
34
- guest_capability("darwin", "bindfs_check_group") do
35
- require "vagrant-bindfs/cap/darwin/checks"
36
- Cap::Darwin::Checks
37
- end
38
-
39
-
40
- guest_capability("linux", "bindfs_check_mount") do
41
- require "vagrant-bindfs/cap/all/checks"
42
- Cap::All::Checks
43
- end
44
-
45
- guest_capability("darwin", "bindfs_check_mount") do
46
- require "vagrant-bindfs/cap/all/checks"
47
- Cap::All::Checks
48
- end
49
-
50
-
51
- guest_capability("linux", "bindfs_installed") do
52
- require "vagrant-bindfs/cap/all/bindfs_installed"
53
- Cap::All::BindfsInstalled
54
- end
55
-
56
- guest_capability("darwin", "bindfs_installed") do
57
- require "vagrant-bindfs/cap/all/bindfs_installed"
58
- Cap::All::BindfsInstalled
59
- end
60
-
61
-
62
- guest_capability("linux", "fuse_loaded") do
63
- require "vagrant-bindfs/cap/linux/fuse_loaded"
64
- Cap::Linux::FuseLoaded
65
- end
66
-
67
- guest_capability("ubuntu", "fuse_loaded") do
68
- require "vagrant-bindfs/cap/ubuntu/fuse_loaded"
69
- Cap::Ubuntu::FuseLoaded
70
- end
71
-
72
- guest_capability("darwin", "fuse_loaded") do
73
- require "vagrant-bindfs/cap/darwin/fuse_loaded"
74
- Cap::Darwin::FuseLoaded
75
- end
76
-
77
-
78
- guest_capability("linux", "enable_fuse") do
79
- require "vagrant-bindfs/cap/linux/enable_fuse"
80
- Cap::Linux::EnableFuse
81
- end
82
-
83
-
84
- guest_capability("debian", "install_bindfs") do
85
- require "vagrant-bindfs/cap/debian/install_bindfs"
86
- Cap::Debian::InstallBindfs
87
- end
88
-
89
- guest_capability("redhat", "install_bindfs") do
90
- require 'vagrant-bindfs/cap/redhat/install_bindfs'
91
- Cap::RedHat::InstallBindfs
92
- end
93
-
94
- guest_capability("fedora", "install_bindfs") do
95
- require 'vagrant-bindfs/cap/fedora/install_bindfs'
96
- Cap::Fedora::InstallBindfs
97
- end
98
-
99
- guest_capability("suse", "install_bindfs") do
100
- require "vagrant-bindfs/cap/suse/install_bindfs"
101
- Cap::Suse::InstallBindfs
102
- end
103
-
104
- guest_capability("darwin", "install_bindfs") do
105
- require "vagrant-bindfs/cap/darwin/install_bindfs"
106
- Cap::Darwin::InstallBindfs
107
- end
108
-
109
-
110
- require "vagrant-bindfs/bind"
111
-
112
- %w{up reload}.each do |action|
113
- action_hook(:bindfs, "machine_action_#{action}".to_sym) do |hook|
114
- hooks.each do |(name, action)|
115
- hook.before(action, Action::Bind, name)
116
- end
117
- end
118
- end
119
-
120
- class << self
121
-
122
- def hooks
123
- @hooks ||= begin
124
- synced_folders = if Vagrant::Action::Builtin.const_defined? :NFS
125
- Vagrant::Action::Builtin::NFS
126
- else
127
- Vagrant::Action::Builtin::SyncedFolders
128
- end
129
-
130
- {
131
- :synced_folders => synced_folders,
132
- :provision => Vagrant::Action::Builtin::Provision
133
- }
134
- end
135
- end
136
-
137
- def hook_names
138
- hooks.keys
139
- end
140
-
141
- end
142
-
143
- end
144
- end
145
- end