Browse files

more intuitive config locations

  • Loading branch information...
1 parent a2e541b commit 9692f10b93af2dc5dcccc9c32f78198a1e020cea @grosser grosser committed Nov 19, 2012
Showing with 30 additions and 23 deletions.
  1. +1 −1 README.md
  2. +29 −22 lib/brakeman.rb
View
2 README.md
@@ -145,7 +145,7 @@ Brakeman options can stored and read from YAML files. To simplify the process of
Options passed in on the commandline have priority over configuration files.
-The default config locations are `./config.yaml`, `~/.brakeman/`, and `/etc/brakeman/config.yaml`
+The default config locations are `./config/brakeman.yml`, `~/.brakeman/config.yml`, and `/etc/brakeman/config.yml`
The `-c` option can be used to specify a configuration file to use.
View
51 lib/brakeman.rb
@@ -80,31 +80,38 @@ def self.set_options options
options
end
- #Load options from YAML file
- def self.load_options config_file
- config_file ||= ""
+ DEPRECATED_CONFIG_FILES = [
+ File.expand_path("./config.yaml"),
+ File.expand_path("~/.brakeman/config.yaml"),
+ File.expand_path("/etc/brakeman/config.yaml"),
+ "#{File.expand_path(File.dirname(__FILE__))}/../lib/config.yaml"
+ ]
+
+ CONFIG_FILES = [
+ File.expand_path("./config/brakeman.yml"),
+ File.expand_path("~/.brakeman/config.yml"),
+ File.expand_path("/etc/brakeman/config.yml"),
+ ]
+ #Load options from YAML file
+ def self.load_options custom_location
#Load configuration file
- [File.expand_path(config_file),
- File.expand_path("./config.yaml"),
- File.expand_path("~/.brakeman/config.yaml"),
- File.expand_path("/etc/brakeman/config.yaml"),
- "#{File.expand_path(File.dirname(__FILE__))}/../lib/config.yaml"].each do |f|
-
- if File.exist? f and not File.directory? f
- notify "[Notice] Using configuration in #{f}"
- options = YAML.load_file f
- options.each do |k,v|
- if v.is_a? Array
- options[k] = Set.new v
- end
- end
-
- return options
- end
- end
+ if config = config_file(custom_location)
+ notify "[Notice] Using configuration in #{config}"
+ options = YAML.load_file config
+ options.each { |k, v| options[k] = Set.new v if v.is_a? Array }
+ options
+ else
+ {}
+ end
+ end
- return {}
+ def self.config_file(custom_location=nil)
+ DEPRECATED_CONFIG_FILES.each do |f|
+ warn "#{f} is deprecated, please use one of #{CONFIG_FILES.join(", ")}" if File.file?(f)
+ end
+ supported_locations = [File.expand_path(custom_location || "")] + DEPRECATED_CONFIG_FILES + CONFIG_FILES
+ supported_locations.detect{|f| File.file?(f) }
end
#Default set of options

0 comments on commit 9692f10

Please sign in to comment.