diff --git a/spec/ameba/cli/cmd_spec.cr b/spec/ameba/cli/cmd_spec.cr index 5e34cfbf..f4202697 100644 --- a/spec/ameba/cli/cmd_spec.cr +++ b/spec/ameba/cli/cmd_spec.cr @@ -57,6 +57,16 @@ module Ameba::Cli c.formatter.should eq :todo end + it "accepts --no-color flag" do + c = Cli.parse_args %w(--no-color) + c.colors?.should be_false + end + + it "doesn't disable colors by default" do + c = Cli.parse_args %w(--all) + c.colors?.should be_true + end + it "ignores --config if --gen-config flag passed" do c = Cli.parse_args %w(--gen-config --config my_config.yml) c.formatter.should eq :todo diff --git a/src/ameba/cli/cmd.cr b/src/ameba/cli/cmd.cr index 52ba8b7a..159e7926 100644 --- a/src/ameba/cli/cmd.cr +++ b/src/ameba/cli/cmd.cr @@ -7,7 +7,7 @@ module Ameba::Cli def run(args) opts = parse_args args - config = Config.load opts.config + config = Config.load opts.config, opts.colors? config.files = opts.files configure_formatter(config, opts) @@ -26,6 +26,7 @@ module Ameba::Cli property only : Array(String)? property except : Array(String)? property? all = false + property? colors = true end def parse_args(args, opts = Opts.new) @@ -66,6 +67,10 @@ module Ameba::Cli opts.formatter = :todo opts.config = "" end + + parser.on("--no-color", "Disable colors") do + opts.colors = false + end end opts diff --git a/src/ameba/config.cr b/src/ameba/config.cr index 0891b230..2f9a8504 100644 --- a/src/ameba/config.cr +++ b/src/ameba/config.cr @@ -46,7 +46,8 @@ class Ameba::Config # config = Ameba::Config.load # ``` # - def self.load(path = PATH) + def self.load(path = PATH, colors? = true) + Colorize.enabled = colors? content = File.exists?(path) ? File.read path : "" Config.new YAML.parse(content) rescue e