class MarkdownLint::CLI
Our Mixlib::CLI class
Constants
- CONFIG_FILE
Public Class Methods
probe_config_file(path)
click to toggle source
# File lib/mdl/cli.rb, line 164 def self.probe_config_file(path) expanded_path = File.expand_path(path) return expanded_path if File.exist?(expanded_path) # Look for a file up from the working dir Pathname.new(expanded_path).ascend do |p| next unless p.directory? config_file = p.join(CONFIG_FILE) return config_file if File.exist?(config_file) end nil end
toggle_list(parts, to_sym = false)
click to toggle source
# File lib/mdl/cli.rb, line 147 def self.toggle_list(parts, to_sym = false) parts = parts.split(',') if parts.class == String if parts.class == Array inc = parts.reject { |p| p.start_with?('~') } exc = parts.select { |p| p.start_with?('~') }.map { |p| p[1..-1] } if to_sym inc.map!(&:to_sym) exc.map!(&:to_sym) end { :include => inc, :exclude => exc } else # We already converted the string into a list of include/exclude # pairs, so just return as is parts end end
Public Instance Methods
run(argv = ARGV)
click to toggle source
# File lib/mdl/cli.rb, line 110 def run(argv = ARGV) parse_options(argv) # Load the config file if it's present filename = CLI.probe_config_file(config[:config_file]) # Only fall back to ~/.mdlrc if we are using the default value for -c if filename.nil? && (config[:config_file] == CONFIG_FILE) filename = File.expand_path("~/#{CONFIG_FILE}") end if !filename.nil? && File.exist?(filename) MarkdownLint::Config.from_file(filename.to_s) puts "Loaded config from #{filename}" if config[:verbose] end # Put values in the config file MarkdownLint::Config.merge!(config) # Set the correct format for any rules/tags configuration loaded from # the config file. Ideally this would probably be done as part of the # config class itself rather than here. unless MarkdownLint::Config[:rules].nil? MarkdownLint::Config[:rules] = CLI.toggle_list( MarkdownLint::Config[:rules], ) end unless MarkdownLint::Config[:tags].nil? MarkdownLint::Config[:tags] = CLI.toggle_list( MarkdownLint::Config[:tags], true ) end # Read from stdin if we didn't provide a filename cli_arguments << '-' if cli_arguments.empty? && !config[:list_rules] end