module SimpleCov::CLI::Clean

def announce(stdout, opts, message)

def announce(stdout, opts, message)
  stdout.puts("simplecov clean: #{message}") unless opts[:quiet]
end

def parse(args)

def parse(args)
  opts = {dry_run: false, quiet: false}
  OptionParser.new do |o|
    o.on("--dry-run") { opts[:dry_run] = true }
    o.on("-q", "--quiet") { opts[:quiet] = true }
  end.parse(args)
  opts
end

def run(args, stdout:, **)

def run(args, stdout:, **)
  opts = parse(args)
  dir = SimpleCov::CLI.coverage_dir
  return announce(stdout, opts, "#{dir} doesn't exist; nothing to do") || 0 unless File.directory?(dir)
  sweep(dir, opts, stdout)
  0
end

def sweep(dir, opts, stdout)

def sweep(dir, opts, stdout)
  if opts[:dry_run]
    announce(stdout, opts, "would remove #{dir} (#{Dir["#{dir}/**/*"].size} entries)")
  else
    require "fileutils"
    FileUtils.rm_rf(dir)
    announce(stdout, opts, "removed #{dir}")
  end
end