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
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Bindfs
4
+ module Validators
5
+ autoload :Config, 'vagrant-bindfs/bindfs/validators/config'
6
+ autoload :Runtime, 'vagrant-bindfs/bindfs/validators/runtime'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Bindfs
4
+ module Validators
5
+ class Config
6
+ attr_reader :folder
7
+ attr_reader :errors
8
+
9
+ extend Forwardable
10
+ def_delegator :@folder, :source
11
+ def_delegator :@folder, :destination
12
+ def_delegator :@folder, :options
13
+
14
+ def initialize(folder)
15
+ @folder = folder
16
+ @errors = []
17
+ end
18
+
19
+ def valid?
20
+ @errors = []
21
+ validate_source!
22
+ validate_destination!
23
+ validate_options!
24
+ @errors.empty?
25
+ end
26
+
27
+ protected
28
+
29
+ def validate_source!
30
+ @errors << I18n.t('vagrant-bindfs.validations.source_path_required') if source.empty?
31
+ @errors << I18n.t('vagrant-bindfs.validations.path_must_be_absolute', path: source) if relative_path?(source)
32
+ end
33
+
34
+ def validate_destination!
35
+ @errors << I18n.t('vagrant-bindfs.validations.destination_path_required') if destination.empty?
36
+ @errors << I18n.t('vagrant-bindfs.validations.path_must_be_absolute', path: destination) if relative_path?(destination)
37
+ @errors << I18n.t('vagrant-bindfs.validations.destination_path_reserved', path: destination) if reserved_path?(destination)
38
+ end
39
+
40
+ def validate_options!
41
+ invalid_options = folder.options.invalid_options.keys
42
+ @errors << I18n.t('vagrant-bindfs.deprecations.disabled') if invalid_options.include?('disabled')
43
+ @errors << I18n.t('vagrant-bindfs.deprecations.skip_verify_user') if invalid_options.include?('skip-verify-user')
44
+ @errors << I18n.t('vagrant-bindfs.deprecations.skip_verify_group') if invalid_options.include?('skip-verify-group')
45
+ @errors << I18n.t('vagrant-bindfs.deprecations.hook') if invalid_options.include?('hook')
46
+ end
47
+
48
+ def relative_path?(path)
49
+ Pathname.new(path).relative?
50
+ end
51
+
52
+ def reserved_path?(path)
53
+ !Pathname.new(path).to_path.match(%r{^\/vagrant\/}).nil?
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Bindfs
4
+ module Validators
5
+ class Runtime < Config
6
+ attr_reader :machine
7
+
8
+ def initialize(folder, machine)
9
+ super(folder)
10
+ @machine = machine
11
+ end
12
+
13
+ protected
14
+
15
+ def validate_source!
16
+ super
17
+
18
+ @errors << I18n.t('vagrant-bindfs.validations.source_path_does_not_exist', path: source) unless directory_exists?(source)
19
+ end
20
+
21
+ def validate_destination!
22
+ super
23
+
24
+ @errors << I18n.t('vagrant-bindfs.validations.destination_already_mounted', dest: destination) if mount_exists?(destination)
25
+ end
26
+
27
+ def validate_options!
28
+ super
29
+
30
+ validate_user
31
+ validate_group
32
+ end
33
+
34
+ def directory_exists?(path)
35
+ machine.guest.capability(:bindfs_exists_directory, path)
36
+ end
37
+
38
+ def mount_exists?(path)
39
+ machine.guest.capability(:bindfs_exists_mount, path)
40
+ end
41
+
42
+ def validate_user
43
+ return if machine.config.bindfs.skip_validations.include?(:user)
44
+ return if machine.guest.capability(:bindfs_exists_user, options['force-user'])
45
+ @errors << I18n.t('vagrant-bindfs.validations.user_does_not_exist', user: options['force-user'])
46
+ end
47
+
48
+ def validate_group
49
+ return if machine.config.bindfs.skip_validations.include?(:group)
50
+ return if machine.guest.capability(:bindfs_exists_group, options['force-group'])
51
+ @errors << I18n.t('vagrant-bindfs.validations.group_does_not_exist', group: options['force-group'])
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ autoload :Plugin, 'vagrant-bindfs/vagrant/plugin'
5
+ autoload :Config, 'vagrant-bindfs/vagrant/config'
6
+ autoload :Capabilities, 'vagrant-bindfs/vagrant/capabilities'
7
+ autoload :Actions, 'vagrant-bindfs/vagrant/actions'
8
+
9
+ autoload :Error, 'vagrant-bindfs/vagrant/errors'
10
+ autoload :ConfigError, 'vagrant-bindfs/vagrant/errors'
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Actions
5
+ autoload :Installer, 'vagrant-bindfs/vagrant/actions/installer'
6
+ autoload :Mounter, 'vagrant-bindfs/vagrant/actions/mounter'
7
+
8
+ autoload :Concerns, 'vagrant-bindfs/vagrant/actions/concerns'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Actions
5
+ module Concerns
6
+ autoload :Log, 'vagrant-bindfs/vagrant/actions/concerns/log'
7
+ autoload :Machine, 'vagrant-bindfs/vagrant/actions/concerns/machine'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Actions
5
+ module Concerns
6
+ module Log
7
+ def logger
8
+ env[:ui]
9
+ end
10
+
11
+ def debug(message)
12
+ logger.detail(message) if config.debug
13
+ end
14
+
15
+ def detail(message)
16
+ logger.detail(message)
17
+ end
18
+
19
+ def info(message)
20
+ logger.info message
21
+ end
22
+
23
+ def warn(message)
24
+ logger.warn message
25
+ end
26
+
27
+ def error(message)
28
+ logger.error message
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Actions
5
+ module Concerns
6
+ module Machine
7
+ def machine
8
+ env[:machine]
9
+ end
10
+
11
+ def config
12
+ machine.config.bindfs
13
+ end
14
+
15
+ def binded_folders(hook = nil)
16
+ @binded_folders ||= begin
17
+ config.binded_folders.each_with_object({}) do |(id, folder), binded|
18
+ binded[id] = folder if hook.nil? || folder.hook == hook
19
+ binded
20
+ end
21
+ end
22
+ end
23
+
24
+ def guest
25
+ machine.guest
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Actions
5
+ class Installer
6
+ attr_reader :app
7
+ attr_reader :env
8
+
9
+ include Concerns::Machine
10
+ include Concerns::Log
11
+
12
+ def initialize(app, env)
13
+ @app = app
14
+ @env = env
15
+ end
16
+
17
+ def call(env)
18
+ @app.call(env)
19
+ apply!(env)
20
+ end
21
+
22
+ protected
23
+
24
+ def apply!(_env)
25
+ return if binded_folders.empty?
26
+ ensure_guest_is_ready_to_bind!
27
+ end
28
+
29
+ def ensure_guest_is_ready_to_bind!
30
+ info(I18n.t('vagrant-bindfs.actions.installer.start'))
31
+ ensure_package_manager_is_installed!
32
+ ensure_fuse_is_installed!
33
+ ensure_fuse_is_loaded!
34
+ ensure_bindfs_is_installed!
35
+ info(I18n.t('vagrant-bindfs.actions.installer.end'))
36
+ end
37
+
38
+ def ensure_package_manager_is_installed!
39
+ unless guest.capability(:bindfs_package_manager_installed)
40
+ warn(I18n.t('vagrant-bindfs.actions.package_manager.not_installed'))
41
+ guest.capability(:bindfs_package_manager_install)
42
+ end
43
+
44
+ detail(I18n.t('vagrant-bindfs.actions.package_manager.installed',
45
+ name: guest.capability(:bindfs_package_manager_name)))
46
+ end
47
+
48
+ def ensure_fuse_is_installed!
49
+ unless guest.capability(:bindfs_fuse_installed)
50
+ warn(I18n.t('vagrant-bindfs.actions.fuse.not_installed'))
51
+ guest.capability(:bindfs_fuse_install)
52
+ end
53
+
54
+ detail(I18n.t('vagrant-bindfs.actions.fuse.installed'))
55
+ end
56
+
57
+ def ensure_fuse_is_loaded!
58
+ unless guest.capability(:bindfs_fuse_loaded)
59
+ warn(I18n.t('vagrant-bindfs.actions.fuse.not_loaded'))
60
+ guest.capability(:bindfs_fuse_load)
61
+ end
62
+
63
+ detail(I18n.t('vagrant-bindfs.actions.fuse.loaded'))
64
+ end
65
+
66
+ def ensure_bindfs_is_installed!
67
+ unless guest.capability(:bindfs_bindfs_installed)
68
+ warn(I18n.t('vagrant-bindfs.actions.bindfs.not_installed'))
69
+
70
+ case true
71
+ when config.install_bindfs_from_source
72
+ install_bindfs_from_source!
73
+
74
+ when config.bindfs_version == :latest
75
+ guest.capability(:bindfs_bindfs_install)
76
+
77
+ when config.bindfs_version != :latest && guest.capability(:bindfs_bindfs_search_version, config.bindfs_version)
78
+ guest.capability(:bindfs_bindfs_install_version, config.bindfs_version)
79
+
80
+ else
81
+ warn(I18n.t('vagrant-bindfs.actions.bindfs.not_found_in_repository',
82
+ version: config.bindfs_version))
83
+ install_bindfs_from_source!
84
+ end
85
+ end
86
+
87
+ detail(I18n.t('vagrant-bindfs.actions.bindfs.detected',
88
+ version: guest.capability(:bindfs_bindfs_version)))
89
+ end
90
+
91
+ def install_bindfs_from_source!
92
+ version = (config.bindfs_version == :latest ? VagrantBindfs::Bindfs::SOURCE_VERSION : config.bindfs_version.to_s)
93
+ guest.capability(:bindfs_bindfs_install_compilation_requirements)
94
+ guest.capability(:bindfs_bindfs_install_from_source, version)
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Actions
5
+ class Mounter
6
+ attr_reader :app
7
+ attr_reader :env
8
+ attr_reader :hook
9
+
10
+ include Concerns::Machine
11
+ include Concerns::Log
12
+
13
+ def initialize(app, env, hook)
14
+ @app = app
15
+ @env = env
16
+ @hook = hook
17
+ end
18
+
19
+ def call(env)
20
+ app.call(env)
21
+ return if binded_folders(hook).empty?
22
+ bind_folders!
23
+ end
24
+
25
+ protected
26
+
27
+ def bind_folders!
28
+ info I18n.t('vagrant-bindfs.actions.mounter.start', hook: hook)
29
+ bindfs_version = guest.capability(:bindfs_bindfs_version)
30
+
31
+ binded_folders(hook).each do |_, folder|
32
+ folder.reverse_merge!(config.default_options)
33
+ folder.to_version!(bindfs_version)
34
+
35
+ validator = VagrantBindfs::Bindfs::Validators::Runtime.new(folder, machine)
36
+
37
+ unless validator.valid?
38
+ error I18n.t(
39
+ 'vagrant-bindfs.validations.errors_found',
40
+ dest: folder.destination,
41
+ source: folder.source,
42
+ errors: validator.errors.join(' ')
43
+ )
44
+ next
45
+ end
46
+
47
+ command = VagrantBindfs::Bindfs::Command.new(folder)
48
+
49
+ detail I18n.t(
50
+ 'vagrant-bindfs.actions.mounter.entry',
51
+ dest: folder.destination,
52
+ source: folder.source
53
+ )
54
+
55
+ machine.communicate.tap do |comm|
56
+ comm.sudo("mkdir -p #{folder.destination}")
57
+ comm.sudo(command.to_s, error_class: VagrantBindfs::Vagrant::Error, error_key: 'bindfs.mount_failed')
58
+ debug(command.to_s)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,108 @@
1
+ # frozen_string_literal: true
2
+ module VagrantBindfs
3
+ module Vagrant
4
+ module Capabilities
5
+ autoload :All, 'vagrant-bindfs/vagrant/capabilities/all'
6
+
7
+ autoload :Darwin, 'vagrant-bindfs/vagrant/capabilities/darwin'
8
+ autoload :Linux, 'vagrant-bindfs/vagrant/capabilities/linux'
9
+
10
+ autoload :Debian, 'vagrant-bindfs/vagrant/capabilities/debian'
11
+ autoload :Ubuntu, 'vagrant-bindfs/vagrant/capabilities/ubuntu'
12
+
13
+ autoload :RedHat, 'vagrant-bindfs/vagrant/capabilities/redhat'
14
+
15
+ autoload :Suse, 'vagrant-bindfs/vagrant/capabilities/suse'
16
+
17
+ class << self
18
+ def included(base)
19
+ declare_capabilities_for_system_checks!(base)
20
+ declare_capabilities_for_package_manager!(base)
21
+ declare_capabilities_for_fuse!(base)
22
+ declare_capabilities_for_bindfs!(base)
23
+ end
24
+
25
+ def declare_capabilities_for_system_checks!(base)
26
+ base.guest_capability('darwin', 'bindfs_exists_user') { Capabilities::Darwin::SystemChecks }
27
+ base.guest_capability('linux', 'bindfs_exists_user') { Capabilities::Linux::SystemChecks }
28
+
29
+ base.guest_capability('darwin', 'bindfs_exists_group') { Capabilities::Darwin::SystemChecks }
30
+ base.guest_capability('linux', 'bindfs_exists_group') { Capabilities::Linux::SystemChecks }
31
+
32
+ base.guest_capability('darwin', 'bindfs_exists_directory') { Capabilities::All::SystemChecks }
33
+ base.guest_capability('linux', 'bindfs_exists_directory') { Capabilities::All::SystemChecks }
34
+
35
+ base.guest_capability('darwin', 'bindfs_exists_mount') { Capabilities::All::SystemChecks }
36
+ base.guest_capability('linux', 'bindfs_exists_mount') { Capabilities::All::SystemChecks }
37
+ end
38
+
39
+ def declare_capabilities_for_package_manager!(base)
40
+ base.guest_capability('darwin', 'bindfs_package_manager_name') { Capabilities::Darwin::PackageManager }
41
+ base.guest_capability('debian', 'bindfs_package_manager_name') { Capabilities::Debian::PackageManager }
42
+ base.guest_capability('redhat', 'bindfs_package_manager_name') { Capabilities::RedHat::PackageManager }
43
+ base.guest_capability('suse', 'bindfs_package_manager_name') { Capabilities::Suse::PackageManager }
44
+
45
+ base.guest_capability('darwin', 'bindfs_package_manager_installed') { Capabilities::All::PackageManager }
46
+ base.guest_capability('linux', 'bindfs_package_manager_installed') { Capabilities::All::PackageManager }
47
+
48
+ base.guest_capability('darwin', 'bindfs_package_manager_install') { Capabilities::Darwin::PackageManager }
49
+ base.guest_capability('linux', 'bindfs_package_manager_install') { Capabilities::Linux::PackageManager }
50
+
51
+ base.guest_capability('darwin', 'bindfs_package_manager_update') { Capabilities::Darwin::PackageManager }
52
+ base.guest_capability('debian', 'bindfs_package_manager_update') { Capabilities::Debian::PackageManager }
53
+ base.guest_capability('redhat', 'bindfs_package_manager_update') { Capabilities::RedHat::PackageManager }
54
+ base.guest_capability('suse', 'bindfs_package_manager_update') { Capabilities::Suse::PackageManager }
55
+ end
56
+
57
+ def declare_capabilities_for_fuse!(base)
58
+ base.guest_capability('darwin', 'bindfs_fuse_installed') { Capabilities::Darwin::Fuse }
59
+ base.guest_capability('linux', 'bindfs_fuse_installed') { Capabilities::Linux::Fuse }
60
+
61
+ base.guest_capability('darwin', 'bindfs_fuse_install') { Capabilities::Darwin::Fuse }
62
+ base.guest_capability('debian', 'bindfs_fuse_install') { Capabilities::Debian::Fuse }
63
+ base.guest_capability('redhat', 'bindfs_fuse_install') { Capabilities::RedHat::Fuse }
64
+ base.guest_capability('suse', 'bindfs_fuse_install') { Capabilities::Suse::Fuse }
65
+
66
+ base.guest_capability('darwin', 'bindfs_fuse_loaded') { Capabilities::Darwin::Fuse }
67
+ base.guest_capability('linux', 'bindfs_fuse_loaded') { Capabilities::Linux::Fuse }
68
+ base.guest_capability('ubuntu', 'bindfs_fuse_loaded') { Capabilities::Ubuntu::Fuse }
69
+
70
+ base.guest_capability('darwin', 'bindfs_fuse_load') { Capabilities::Darwin::Fuse }
71
+ base.guest_capability('linux', 'bindfs_fuse_load') { Capabilities::Linux::Fuse }
72
+ base.guest_capability('ubuntu', 'bindfs_fuse_load') { Capabilities::Ubuntu::Fuse }
73
+ end
74
+
75
+ def declare_capabilities_for_bindfs!(base)
76
+ base.guest_capability('darwin', 'bindfs_bindfs_installed') { Capabilities::All::Bindfs }
77
+ base.guest_capability('linux', 'bindfs_bindfs_installed') { Capabilities::All::Bindfs }
78
+
79
+ base.guest_capability('darwin', 'bindfs_bindfs_version') { Capabilities::All::Bindfs }
80
+ base.guest_capability('linux', 'bindfs_bindfs_version') { Capabilities::All::Bindfs }
81
+
82
+ base.guest_capability('darwin', 'bindfs_bindfs_install') { Capabilities::Darwin::Bindfs }
83
+ base.guest_capability('debian', 'bindfs_bindfs_install') { Capabilities::Debian::Bindfs }
84
+ base.guest_capability('redhat', 'bindfs_bindfs_install') { Capabilities::RedHat::Bindfs }
85
+ base.guest_capability('suse', 'bindfs_bindfs_install') { Capabilities::Suse::Bindfs }
86
+
87
+ base.guest_capability('darwin', 'bindfs_bindfs_search_version') { Capabilities::Darwin::Bindfs }
88
+ base.guest_capability('debian', 'bindfs_bindfs_search_version') { Capabilities::Debian::Bindfs }
89
+ base.guest_capability('redhat', 'bindfs_bindfs_search_version') { Capabilities::RedHat::Bindfs }
90
+ base.guest_capability('suse', 'bindfs_bindfs_search_version') { Capabilities::Suse::Bindfs }
91
+
92
+ base.guest_capability('darwin', 'bindfs_bindfs_install_version') { Capabilities::Darwin::Bindfs }
93
+ base.guest_capability('debian', 'bindfs_bindfs_install_version') { Capabilities::Debian::Bindfs }
94
+ base.guest_capability('redhat', 'bindfs_bindfs_install_version') { Capabilities::RedHat::Bindfs }
95
+ base.guest_capability('suse', 'bindfs_bindfs_install_version') { Capabilities::Suse::Bindfs }
96
+
97
+ base.guest_capability('darwin', 'bindfs_bindfs_install_compilation_requirements') { Capabilities::Darwin::Bindfs }
98
+ base.guest_capability('debian', 'bindfs_bindfs_install_compilation_requirements') { Capabilities::Debian::Bindfs }
99
+ base.guest_capability('redhat', 'bindfs_bindfs_install_compilation_requirements') { Capabilities::RedHat::Bindfs }
100
+ base.guest_capability('suse', 'bindfs_bindfs_install_compilation_requirements') { Capabilities::Suse::Bindfs }
101
+
102
+ base.guest_capability('darwin', 'bindfs_bindfs_install_from_source') { Capabilities::All::Bindfs }
103
+ base.guest_capability('linux', 'bindfs_bindfs_install_from_source') { Capabilities::All::Bindfs }
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end