9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/kettle/drift/cli.rb', line 9
def run(argv = ARGV)
options = parse(argv)
return options if options.is_a?(Integer)
project_root = File.expand_path(options.fetch(:project_root))
outcome = Kettle::Drift.run(
project_root: project_root,
template_dir: options[:template_dir],
min_chars: options.fetch(:min_chars),
json_path: options[:json_path],
lock_path: options[:lock_path],
mode: options.fetch(:mode),
)
if outcome.clean?
puts "[kettle-drift] ✅ No duplicate drift detected (min_chars=#{options[:min_chars]}, files=#{outcome.files.size}, baseline=#{outcome.baseline_set.size})"
else
puts "[kettle-drift] ⚠️ #{outcome.warning_count} drift warning(s) across #{outcome.results.size} unique chunk(s) (files=#{outcome.files.size}, baseline=#{outcome.baseline_set.size})"
puts "[kettle-drift] 📄 Report: #{Kettle::Drift.display_path(outcome.json_path)}" if outcome.json_path
end
outcome.exit_code
end
|