rabbitmq-server/deps/rabbitmq_cli/lib/rabbitmq/cli/exit_codes.ex

46 lines
1.9 KiB
Elixir

## The contents of this file are subject to the Mozilla Public License
## Version 1.1 (the "License"); you may not use this file except in
## compliance with the License. You may obtain a copy of the License
## at http://www.mozilla.org/MPL/
##
## Software distributed under the License is distributed on an "AS IS"
## basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
## the License for the specific language governing rights and
## limitations under the License.
##
## The Original Code is RabbitMQ.
##
## The Initial Developer of the Original Code is GoPivotal, Inc.
## Copyright (c) 2007-2016 Pivotal Software, Inc. All rights reserved.
defmodule RabbitMQ.CLI.ExitCodes do
@exit_ok 0
@exit_usage 64
@exit_dataerr 65
@exit_unavailable 69
@exit_software 70
@exit_tempfail 75
@type exit_code :: integer
def exit_ok, do: @exit_ok
def exit_usage, do: @exit_usage
def exit_dataerr, do: @exit_dataerr
def exit_unavailable, do: @exit_unavailable
def exit_software, do: @exit_software
def exit_tempfail, do: @exit_tempfail
def exit_code_for({:validation_failure, :not_enough_args}), do: exit_usage
def exit_code_for({:validation_failure, :too_many_args}), do: exit_usage
def exit_code_for({:validation_failure, {:not_enough_args, _}}), do: exit_usage
def exit_code_for({:validation_failure, {:too_many_args, _}}), do: exit_usage
def exit_code_for({:validation_failure, {:bad_argument, _}}), do: exit_dataerr
def exit_code_for({:validation_failure, :bad_argument}), do: exit_dataerr
def exit_code_for({:validation_failure, {:bad_option, _}}), do: exit_usage
def exit_code_for({:validation_failure, _}), do: exit_usage
def exit_code_for({:badrpc, :timeout}), do: exit_tempfail
def exit_code_for({:badrpc, :nodedown}), do: exit_unavailable
def exit_code_for({:error, _}), do: exit_software
end