Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
2 changes: 2 additions & 0 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
name: Unit tests
permissions:
contents: read
on:
push:
branches: [main, next]
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased]

### Changed

* Configure dependabot to auto-update Github Actions (#116)

## Version 1.3.1 (2024-08-24)

## Fixed
Expand Down
151 changes: 119 additions & 32 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
GIT
remote: https://github.com/hashicorp/vagrant.git
revision: c70e8ab32cd3505637e3ada6de589758bf4fbf92
revision: f2960d545864e1b644fe7fb0f3b82fec9895dd13
specs:
vagrant (2.4.8.dev)
vagrant (2.4.10.dev)
base64 (~> 0.2.0)
bcrypt_pbkdf (~> 1.1)
childprocess (~> 5.1)
Expand Down Expand Up @@ -41,7 +41,7 @@ GEM
ast (2.4.3)
base64 (0.2.0)
bcrypt_pbkdf (1.1.1)
bigdecimal (3.2.2)
bigdecimal (3.3.1)
builder (3.3.0)
childprocess (5.1.0)
logger (~> 1.5)
Expand All @@ -51,9 +51,9 @@ GEM
diff-lcs (1.6.2)
ed25519 (1.3.0)
erubi (1.13.1)
excon (1.2.7)
excon (1.3.0)
logger
faraday (2.13.2)
faraday (2.14.0)
faraday-net_http (>= 2.0, < 3.5)
json
logger
Expand All @@ -72,7 +72,7 @@ GEM
i18n (1.14.7)
concurrent-ruby (~> 1.0)
ipaddr (1.2.7)
json (2.12.2)
json (2.15.1)
jwt (3.1.2)
base64
language_server-protocol (3.17.0.5)
Expand All @@ -89,8 +89,8 @@ GEM
mime-types (3.7.0)
logger
mime-types-data (~> 3.2025, >= 3.2025.0507)
mime-types-data (3.2025.0701)
multi_json (1.15.0)
mime-types-data (3.2025.0924)
multi_json (1.17.0)
multi_xml (0.7.2)
bigdecimal (~> 3.1)
mutex_m (0.3.0)
Expand All @@ -108,66 +108,66 @@ GEM
net-ssh (7.3.0)
nori (2.7.1)
bigdecimal
oauth2 (2.0.12)
oauth2 (2.0.17)
faraday (>= 0.17.3, < 4.0)
jwt (>= 1.0, < 4.0)
logger (~> 1.2)
multi_xml (~> 0.5)
rack (>= 1.2, < 4)
snaky_hash (~> 2.0, >= 2.0.3)
version_gem (>= 1.1.8, < 3)
ostruct (0.6.2)
version_gem (~> 1.1, >= 1.1.9)
ostruct (0.6.3)
parallel (1.27.0)
parser (3.3.8.0)
parser (3.3.9.0)
ast (~> 2.4.1)
racc
prism (1.4.0)
prism (1.6.0)
racc (1.8.1)
rack (3.1.16)
rack (3.2.3)
rainbow (3.1.1)
rake (13.3.0)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rb-kqueue (0.2.8)
ffi (>= 0.5.0)
regexp_parser (2.10.0)
rexml (3.4.1)
rspec (3.13.1)
regexp_parser (2.11.3)
rexml (3.4.4)
rspec (3.13.2)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.5)
rspec-core (3.13.6)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.5)
rspec-mocks (3.13.6)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.4)
rubocop (1.77.0)
rspec-support (3.13.6)
rubocop (1.81.6)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.45.1, < 2.0)
rubocop-ast (>= 1.47.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.45.1)
rubocop-ast (1.47.1)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-performance (1.25.0)
rubocop-performance (1.26.1)
lint_roller (~> 1.1)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.38.0, < 2.0)
rubocop-ast (>= 1.47.1, < 2.0)
rubocop-rake (0.7.1)
lint_roller (~> 1.1)
rubocop (>= 1.72.1)
rubocop-rspec (3.6.0)
rubocop-rspec (3.7.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
ruby-progressbar (1.13.0)
Expand All @@ -180,16 +180,16 @@ GEM
time (0.4.1)
date
timeout (0.4.3)
unicode-display_width (3.1.4)
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
uri (1.0.3)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.1.0)
uri (1.0.4)
vagrant_cloud (3.1.3)
excon (~> 1.0)
log4r (~> 1.1)
oauth2 (~> 2.0)
rexml (~> 3.3)
version_gem (1.1.8)
version_gem (1.1.9)
wdm (0.2.0)
winrm (2.3.9)
builder (>= 2.1.2)
Expand Down Expand Up @@ -224,5 +224,92 @@ DEPENDENCIES
vagrant!
vagrant-bindfs!

CHECKSUMS
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
bcrypt_pbkdf (1.1.1) sha256=2f9077dde837d1f0dd2eb0f9e5327c6871c68ebc8eba88870fb6b7956e1e2b13
bigdecimal (3.3.1) sha256=eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
childprocess (5.1.0) sha256=9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec
concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
date (3.4.1) sha256=bf268e14ef7158009bfeaec40b5fa3c7271906e88b196d958a89d4b408abe64f
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
ed25519 (1.3.0) sha256=514a5584f84d39daac568a17ec93a4e7261e140c52c562ed8c382c18456e627d
erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9
excon (1.3.0) sha256=d83d3bc2a46a74f969406071e0acc32971381a01d7382a79fa75529fb28046be
faraday (2.14.0) sha256=8699cfe5d97e55268f2596f9a9d5a43736808a943714e3d9a53e6110593941cd
faraday-net_http (3.4.1) sha256=095757fae7872b94eac839c08a1a4b8d84fd91d6886cfbe75caa2143de64ab3b
ffi (1.17.2) sha256=297235842e5947cc3036ebe64077584bff583cd7a4e94e9a02fdec399ef46da6
gssapi (1.3.1) sha256=c51cf30842ee39bd93ce7fc33e20405ff8a04cda9dec6092071b61258284aee1
gyoku (1.4.0) sha256=389d887384c777f271cb9377bb642f20bbe0c633d1ef5af78569d4db53c1a2cd
hashicorp-checkpoint (0.1.6) sha256=928cea744b2eb0a05c7e97429e0fcb1a0ef8e0b02824271c61ff9cb2c9fe340c
hashie (5.0.0) sha256=9d6c4e51f2a36d4616cbc8a322d619a162d8f42815a792596039fc95595603da
httpclient (2.9.0) sha256=4b645958e494b2f86c2f8a2f304c959baa273a310e77a2931ddb986d83e498c8
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
ipaddr (1.2.7) sha256=cb7f4087fdbf14bcedc23ac471b8ac521648b3a5b4b5be3a4378066636e6af72
json (2.15.1) sha256=b1c1b2e7c116eb1903e0ce0c374783e6ead8747a0f9eca132d274018ebb80b89
jwt (3.1.2) sha256=af6991f19a6bb4060d618d9add7a66f0eeb005ac0bc017cd01f63b42e122d535
language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
listen (3.9.0) sha256=db9e4424e0e5834480385197c139cb6b0ae0ef28cc13310cfd1ca78377d59c67
little-plugger (1.1.4) sha256=d5f347c00d9d648040ef7c17d6eb09d3d0719adf19ca30d1a3b6fb26d0a631bb
log4r (1.1.10) sha256=9b452928c964b7c54c09aeb25ff045b5a722b387b16c9ce37cb1baec00062966
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
logging (2.4.0) sha256=ba8893a3c211b836f4131bb93b3eb3137a0c3b1fcd0ec3d570e324d8bdc00ccb
mime-types (3.7.0) sha256=dcebf61c246f08e15a4de34e386ebe8233791e868564a470c3fe77c00eed5e56
mime-types-data (3.2025.0924) sha256=f276bca15e59f35767cbcf2bc10e023e9200b30bd6a572c1daf7f4cc24994728
multi_json (1.17.0) sha256=76581f6c96aebf2e85f8a8b9854829e0988f335e8671cd1a56a1036eb75e4a1b
multi_xml (0.7.2) sha256=307a96dc48613badb7b2fc174fd4e62d7c7b619bc36ea33bfd0c49f64f5787ce
mutex_m (0.3.0) sha256=cfcb04ac16b69c4813777022fdceda24e9f798e48092a2b817eb4c0a782b0751
net-ftp (0.3.8) sha256=28d63e407a7edb9739c320a4faaec515e43e963815248d06418aba322478874f
net-http (0.6.0) sha256=9621b20c137898af9d890556848c93603716cab516dc2c89b01a38b894e259fb
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
net-scp (4.1.0) sha256=a99b0b92a1e5d360b0de4ffbf2dc0c91531502d3d4f56c28b0139a7c093d1a5d
net-sftp (4.0.0) sha256=65bb91c859c2f93b09826757af11b69af931a3a9155050f50d1b06d384526364
net-ssh (7.3.0) sha256=172076c4b30ce56fb25a03961b0c4da14e1246426401b0f89cba1a3b54bf3ef0
nori (2.7.1) sha256=6166cd336959854762073e2fbae888593809cac1b3e904f4fb009313d7226861
oauth2 (2.0.17) sha256=c4e182aeabc06dfdafce9a15095c30edc3a1a21fc3c4f0ea49d9295429e79835
ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
parser (3.3.9.0) sha256=94d6929354b1a6e3e1f89d79d4d302cc8f5aa814431a6c9c7e0623335d7687f2
prism (1.6.0) sha256=bfc0281a81718c4872346bc858dc84abd3a60cae78336c65ad35c8fbff641c6b
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
rack (3.2.3) sha256=239a373da6584574f25f042d8ed4ba21e691c9799f1d2b5c8920bbbc23ca3d41
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
rake (13.3.0) sha256=96f5092d786ff412c62fde76f793cc0541bd84d2eb579caa529aa8a059934493
rb-fsevent (0.11.2) sha256=43900b972e7301d6570f64b850a5aa67833ee7d87b458ee92805d56b7318aefe
rb-inotify (0.11.1) sha256=a0a700441239b0ff18eb65e3866236cd78613d6b9f78fea1f9ac47a85e47be6e
rb-kqueue (0.2.8) sha256=af2f3175b012e2554ea4ae2a720ecae64a9bb3c0f2e894c674ef2d5a6b0bf86e
regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
rspec-mocks (3.13.6) sha256=78b137ae5e91c5072bf81d40d78189aa911e965a81adc245e2d8d9ba624d9b4e
rspec-support (3.13.6) sha256=2e8de3702427eab064c9352fe74488cc12a1bfae887ad8b91cba480ec9f8afb2
rubocop (1.81.6) sha256=a7095eca1b79bbbe7d81c74c11ed2c532faa868bd9d31c2f12b7be7fbfbfef42
rubocop-ast (1.47.1) sha256=592682017855408b046a8190689490763aecea175238232b1b526826349d01ae
rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d
rubocop-rspec (3.7.0) sha256=b7b214da112034db9c6d00f2d811a354847e870f7b6ed2482b29649c3d42058f
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
rubyntlm (0.6.5) sha256=47013402b99ae29ee93f930af51edaec8c6008556f4be25705a422b4430314f5
rubyzip (2.3.2) sha256=3f57e3935dc2255c414484fbf8d673b4909d8a6a57007ed754dde39342d2373f
snaky_hash (2.0.3) sha256=25a3d299566e8153fb02fa23fd9a9358845950f7a523ddbbe1fa1e0d79a6d456
time (0.4.1) sha256=035f360508a4a4dbabcbbcd3886566b9abd432de89136795d2ff7aec5bcdea61
timeout (0.4.3) sha256=9509f079b2b55fe4236d79633bd75e34c1c1e7e3fb4b56cb5fda61f80a0fe30e
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
unicode-emoji (4.1.0) sha256=4997d2d5df1ed4252f4830a9b6e86f932e2013fbff2182a9ce9ccabda4f325a5
uri (1.0.4) sha256=34485d137c079f8753a0ca1d883841a7ba2e5fae556e3c30c2aab0dde616344b
vagrant (2.4.10.dev)
vagrant-bindfs (1.3.1)
vagrant_cloud (3.1.3) sha256=dbef5f0a9cf43299e74870658b1820f9c1f0fdc951d17e24f15f24a6b1b99525
version_gem (1.1.9) sha256=0c1a0962ae543c84a00889bb018d9f14d8f8af6029d26b295d98774e3d2eb9a4
wdm (0.2.0) sha256=c46d9dcb6d375199ca07465bc67669ee8f041aeaa55dd7dafe6de4dd97b27647
winrm (2.3.9) sha256=ef6b767c5772d06e186300b506ea5e65afb849904a551f8482a5cfc2a1be5d06
winrm-elevated (1.2.3) sha256=ed733dd163ced9b6acc6a01d331f539946b59e40adbcd63941f62a8c6254b4d2
winrm-fs (1.3.5) sha256=0d2cdd9e1fb6fc8d01f56a32dce41d98ae6eefb481937ed0e058faa0cd0c693d

BUNDLED WITH
2.5.3
2.7.2
2 changes: 1 addition & 1 deletion Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Vagrant.configure('2') do |config|
test_machines.each do |distro, options|
config.vm.define "vagrant-bindfs-test-#{distro}" do |machine|
machine.vm.box = options[:box]
tests_setup(machine, (options[:args] || {}))
tests_setup(machine, options[:args] || {})
end
end
end
11 changes: 7 additions & 4 deletions lib/vagrant-bindfs/bindfs/option_set.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class OptionSet # :nodoc:

include ::Enumerable
extend ::Forwardable

def_delegators :@options, :each, :[], :keys, :key?, :to_h

def initialize(version = nil, options = {})
Expand Down Expand Up @@ -96,12 +97,14 @@ def cast_value_as_option(value)
(value.respond_to?(:to_s) ? value.to_s : value)
end

# rubocop:disable Naming/PredicateMethod
def cast_value_as_flag(value)
return true if [true, 'true', 'True', 'yes', 'Yes', 'y', 'Y', 'on', 'On', 1].include?(value)
return false if [false, 'false', 'False', 'no', 'No', 'n', 'N', 'off', 'Off', 0].include?(value)

!!value
end
# rubocop:enable Naming/PredicateMethod

class << self
def bindfs_options
Expand All @@ -110,21 +113,21 @@ def bindfs_options

def supported_options(version)
bindfs_options.each_with_object({}) do |(name, definition), supported|
supported[name] = definition if version.nil? || !version_lower_than(version, definition['since'])
supported[name] = definition if version.nil? || !version_lower_than?(version, definition['since'])
supported
end
end

def compatible_name_for_version(option_name, version)
return 'user' if option_name == 'force-user' && version_lower_than(version, '1.12')
return 'group' if option_name == 'force-group' && version_lower_than(version, '1.12')
return 'user' if option_name == 'force-user' && version_lower_than?(version, '1.12')
return 'group' if option_name == 'force-group' && version_lower_than?(version, '1.12')

option_name
end

protected

def version_lower_than(version, target)
def version_lower_than?(version, target)
Gem::Version.new(version) < Gem::Version.new(target)
end
end
Expand Down
1 change: 1 addition & 0 deletions lib/vagrant-bindfs/bindfs/validators/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Config # :nodoc:
:errors

extend ::Forwardable

def_delegators :@folder, :source, :destination, :options

def initialize(folder)
Expand Down
4 changes: 4 additions & 0 deletions lib/vagrant-bindfs/vagrant/capabilities/darwin/bindfs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ module Darwin
module Bindfs # :nodoc:
class << self
# Homebrew only use its own github repositories
# rubocop:disable Naming/PredicateMethod
def bindfs_bindfs_search(_machine)
true
end
# rubocop:enable Naming/PredicateMethod

def bindfs_bindfs_install(machine)
machine.guest.capability(:bindfs_package_manager_update)
Expand All @@ -18,9 +20,11 @@ def bindfs_bindfs_install(machine)

# Homebrew does not provide any method to install
# an older version of a formula
# rubocop:disable Naming/PredicateMethod
def bindfs_bindfs_search_version(_machine, _version)
false
end
# rubocop:enable Naming/PredicateMethod

def bindfs_bindfs_install_version(machine)
# Pass
Expand Down
4 changes: 2 additions & 2 deletions lib/vagrant-bindfs/vagrant/capabilities/debian/bindfs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def bindfs_bindfs_install(machine)
machine.communicate.sudo('apt-get install -y bindfs')
end

# rubocop:disable Layout/LineLength
# rubocop:disable Layout/LineLength, Naming/PredicateMethod
def bindfs_bindfs_search_version(machine, version)
machine.guest.capability(:bindfs_package_manager_update)
machine.communicate.tap do |comm|
Expand All @@ -31,7 +31,7 @@ def bindfs_bindfs_search_version(machine, version)
end
false
end
# rubocop:enable Layout/LineLength
# rubocop:enable Layout/LineLength, Naming/PredicateMethod

def bindfs_bindfs_install_version(machine, version)
machine.guest.capability(:bindfs_package_manager_update)
Expand Down
2 changes: 1 addition & 1 deletion lib/vagrant-bindfs/vagrant/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def bind_folder(source, destination, options = {})
def merge(other) # rubocop:disable Metrics/AbcSize
super.tap do |result|
%i[debug force_empty_mountpoints install_bindfs_from_source].each do |boolean|
result.send(:"#{boolean}=", (send(boolean) || other.send(boolean)))
result.send(:"#{boolean}=", send(boolean) || other.send(boolean))
end
result.bound_folders = bound_folders.merge(other.bound_folders)
result.skip_validations = (skip_validations + other.skip_validations).uniq
Expand Down