#!/usr/bin/ruby

require 'English'
@project_root = File.expand_path('../..', __FILE__)
$LOAD_PATH.unshift(File.join(@project_root, 'lib'))
HAMMER = ENV['HAMMER'] || File.join(@project_root, 'bin/hammer')

completion_cache_file = ENV['HAMMER_COMPLETION_CACHE'] || '~/.cache/hammer_completion.json'
completion_cache_file = File.expand_path(completion_cache_file)

# build the cache if it does not exist
unless File.exist?(completion_cache_file)
  require 'hammer_cli'
  `#{HAMMER} prebuild-bash-completion`
end

require 'hammer_cli/bash/completion'

dict = HammerCLI::Bash::Completion.load_description(completion_cache_file)

comp_line = ENV['COMP_LINE'] || ''
comp_args = comp_line.split(' ', 2).last || ''

result = HammerCLI::Bash::Completion.new(dict).complete(comp_args)

puts result.join("\n")