diff --git a/exe/hanami b/exe/hanami index b55e2f79..d3f02d9d 100755 --- a/exe/hanami +++ b/exe/hanami @@ -6,15 +6,4 @@ require "hanami/cli" cli = Dry::CLI.new(Hanami::CLI) Hanami::CLI::Bundler.require(:cli) - -code = catch(:exit) { - begin - cli.call - 0 - rescue Hanami::CLI::Error => exception - $stderr.puts(exception.message) # rubocop:disable Style/StderrPuts - 1 - end -} - -exit(code) +cli.call diff --git a/lib/hanami/cli/errors.rb b/lib/hanami/cli/errors.rb index 7dcba27b..46c26485 100644 --- a/lib/hanami/cli/errors.rb +++ b/lib/hanami/cli/errors.rb @@ -2,9 +2,14 @@ module Hanami module CLI + # This is a `Dry::CLI::ExitError`, so the CLI prints its message to stderr and exits with 1. + # # @since 0.1.0 # @api public - class Error < StandardError + class Error < Dry::CLI::ExitError + def initialize(message = self.class.name, exit_code: 1) + super + end end # @since 2.0.0