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(