зеркало из https://github.com/github/ruby.git
Load OptionParser defaults from XDG and Haiku standards
This commit is contained in:
Родитель
970a25b104
Коммит
7e72ce0f73
|
@ -1806,13 +1806,26 @@ XXX
|
|||
# is not present. Returns whether successfully loaded.
|
||||
#
|
||||
# +filename+ defaults to basename of the program without suffix in a
|
||||
# directory ~/.options.
|
||||
# directory ~/.options, then the basename with '.options' suffix
|
||||
# under XDG and Haiku standard places.
|
||||
#
|
||||
def load(filename = nil)
|
||||
begin
|
||||
filename ||= File.expand_path(File.basename($0, '.*'), '~/.options')
|
||||
rescue
|
||||
return false
|
||||
unless filename
|
||||
basename = File.basename($0, '.*')
|
||||
return true if load(File.expand_path(basename, '~/.options')) rescue nil
|
||||
basename << ".options"
|
||||
return [
|
||||
# XDG
|
||||
ENV['XDG_CONFIG_HOME'],
|
||||
'~/.config',
|
||||
*ENV['XDG_CONFIG_DIRS']&.split(File::PATH_SEPARATOR),
|
||||
|
||||
# Haiku
|
||||
'~/config/settings',
|
||||
].any? {|dir|
|
||||
next if !dir or dir.empty?
|
||||
load(File.expand_path(basename, dir)) rescue nil
|
||||
}
|
||||
end
|
||||
begin
|
||||
parse(*IO.readlines(filename).each {|s| s.chomp!})
|
||||
|
|
Загрузка…
Ссылка в новой задаче