Sha256: 1d8b56b3a2cd7c5192d08b7ca57336979d40e8888a622f6f143c431ae064c62e
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
module Owners class CLI < Thor include Timeout class_option :debug, aliases: %w(-d), desc: "Output additional subscription debugging info", type: :boolean class_option :file, aliases: %w(-f), desc: "The name of the OWNERS file", type: :string desc "for [FILES...]", "List owners for a set of files" def for(*files) run(:for, files) end desc "for_diff REF [BASE_REF]", "List owners for a set of git changes" def for_diff(ref, base_ref = "master") Owners.file = options[:file] if options[:file] Owners.for_diff(ref, base_ref).each do |owner| output(owner) end end desc "missing_for [FILES...]", "List files that don't have owners" def missing_for(*files) run(:missing_for, files) end no_commands do def output(owner) say owner if options[:debug] last_sub = nil owner.subscriptions.each do |path, subscriptions| subscriptions.each do |sub| if last_sub != sub say if last_sub say " #{sub}", :blue end say " #{path}", :red unless path == sub.source last_sub = sub end end say end end def run(method, files) files = stdin_files unless files.any? Owners.file = options[:file] if options[:file] Owners.send(method, *files).each do |owner| output(owner) end end def stdin_files timeout(1) { $stdin.read.split("\n") } rescue Timeout::Error [] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
owners-0.1.1 | lib/owners/cli.rb |