Class: Kettle::Dev::ResetCLI

Inherits:
Object
  • Object
show all
Defined in:
lib/kettle/dev/reset_cli.rb

Instance Method Summary collapse

Constructor Details

#initialize(argv = [], root: Kettle::Dev::CIHelpers.project_root) ⇒ ResetCLI

Returns a new instance of ResetCLI.



8
9
10
11
12
# File 'lib/kettle/dev/reset_cli.rb', line 8

def initialize(argv = [], root: Kettle::Dev::CIHelpers.project_root)
  @argv = Array(argv).dup
  @root = root
  @check = false
end

Instance Method Details

#run!Object

Raises:



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/kettle/dev/reset_cli.rb', line 14

def run!
  args = parse!
  target = args.first.to_s
  raise Error, "kettle-reset requires TARGET" if target.empty?
  raise Error, "unexpected argument(s): #{args.drop(1).join(" ")}" if args.length > 1

  if check
    validate(target)
  else
    paths = resetter.lockfile_paths_for(target)
    unless resetter.release_lockfiles_target?(target) || paths.any? { |path| resetter.normalization_needed?(path) }
      puts "#{target} is already reset."
      return 0
    end
    resetter.reset(target)
    puts "Reset #{target}."
  end
  0
end