def execute
ShellMainCommand.load_commands(HammerCLI::MainCommand)
Readline.completion_append_character = ''
Readline.completer_word_break_characters = ' ='
Readline.completion_proc = complete_proc
stty_save = `stty -g`.chomp
history = ShellHistory.new(Settings.get(:ui, :history_file) || DEFAULT_HISTORY_FILE)
begin
print_welcome_message
while line = Readline.readline(prompt)
history.push(line)
line = HammerCLI::CompleterLine.new(line)
ShellMainCommand.run('', line, context) unless line.empty?
end
rescue Interrupt; end
puts
system('stty', stty_save)
HammerCLI::EX_OK
end