summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2015-12-15 17:51:10 -0800
committerSamuel Giddins <segiddins@segiddins.me>2015-12-15 17:51:10 -0800
commit3c748989b2be50e97655d5af855b46b44699e6b4 (patch)
tree8e755763d788d1f44763580e6bd7d873099cde7c
parent1ca7d4505becf5a7553280f892ef31f0e6933384 (diff)
downloadbundler-seg-config-load-filesystem-access.tar.gz
[Settings] Use filesystem_access block to read config fileseg-config-load-filesystem-access
-rw-r--r--lib/bundler/settings.rb8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb
index 1ca41e2e71..528d4f6aa2 100644
--- a/lib/bundler/settings.rb
+++ b/lib/bundler/settings.rb
@@ -224,17 +224,15 @@ module Bundler
end
def load_config(config_file)
- valid_file = config_file && config_file.exist? && !config_file.size.zero?
- if !ignore_config? && valid_file
+ SharedHelpers.filesystem_access(config_file, :read) do
+ valid_file = config_file && config_file.exist? && !config_file.size.zero?
+ return {} if ignore_config? || !valid_file
config_regex = /^(BUNDLE_.+): (['"]?)(.*(?:\n(?!BUNDLE).+)?)\2$/
- raise PermissionError.new(config_file, :read) unless config_file.readable?
config_pairs = config_file.read.scan(config_regex).map do |m|
key, _, value = m
[convert_to_backward_compatible_key(key), value.gsub(/\s+/, " ").tr('"', "'")]
end
Hash[config_pairs]
- else
- {}
end
end