Sha256: 32c4cfcdb47c31764b7c871f1b0c008596c1227351c70005f3ebb45f0a000d06
Contents?: true
Size: 1.06 KB
Versions: 9
Compression:
Stored size: 1.06 KB
Contents
# frozen_string_literal: true require 'avm/core_ext' module Avm module Tools class Runner class Git class DirtyFiles DEFAULT_FORMAT = '%p' FIELDS = { i: :index, w: :worktree, p: :path, a: :absolute_path }.map { |k, v| ["%#{k}", v] }.to_h runner_with :help do desc 'Lists dirty files in Git repository.' arg_opt '-f', '--format', "Format of each line (See \"Format fields\") [default: #{DEFAULT_FORMAT}]." end def help_extra_text "Format fields:\n" + FIELDS.map { |k, v| " #{k} => #{v}" }.join("\n") end def run runner_context.call(:git).dirty_files.each do |file| out("#{format_file(file)}\n") end end private def format parsed.format || DEFAULT_FORMAT end def format_file(file) FIELDS.inject(format) { |a, e| a.gsub(e.first, file.send(e.last)) } end end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems