lib/todoloo/cli.rb in todoloo-0.0.3 vs lib/todoloo/cli.rb in todoloo-0.0.4

- old
+ new

@@ -1,17 +1,31 @@ require "thor" class Todoloo::CLI < Thor package_name "Todoloo" + DEFAULT_PATTERN = [ + "**/*.rb", + "*.rb" + ].freeze + desc "scan", "Scans all files that match the given globs and outputs a tasks.yml" - method_option :exclude, type: :array, aliases: "-e", desc: "List of path globs to exclude" + method_option :pattern, type: :string, repeatable: true, aliases: "-p", desc: "Path globs to match; can be repeated" + method_option :exclude, type: :string, repeatable: true, aliases: "-e", desc: "List of path globs to exclude" + method_option :output, type: :string, aliases: "-o", default: "tasks.yml", desc: "Name of the output file" + method_option :verbose, type: :boolean, default: false def scan + patterns = options.fetch(:pattern, DEFAULT_PATTERN) + Todoloo::FileScanner - .new("**/*.rb", excludes: options[:exclude] || [], trace: true) + .new( + patterns, + excludes: options.fetch(:exclude, []), + trace: options.fetch(:verbose) + ) .scan .sort - .write("tasks.yml") + .write(options.fetch(:output)) end desc "io", "Reads input from stdio and writes to stdout" def io Todoloo::TaskList.new.add(