Method: Morpheus::Cli::CliRegistry.parse_command_result
- Defined in:
- lib/morpheus/cli/cli_registry.rb
.parse_command_result(cmd_result) ⇒ Array
parse any object into a command result [exit_code, error] 0 means success. This treats nil, true, or an object success. 0 or
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 |
# File 'lib/morpheus/cli/cli_registry.rb', line 232 def parse_command_result(cmd_result) exit_code, err = nil, nil if cmd_result.is_a?(Array) exit_code = cmd_result[0] || 0 err = cmd_result[1] elsif cmd_result.is_a?(Hash) exit_code = cmd_result[:exit_code] || 0 err = cmd_result[:error] || cmd_result[:err] elsif cmd_result == nil || cmd_result == true exit_code = 0 elsif cmd_result == false exit_code = 1 elsif cmd_result.is_a?(Integer) exit_code = cmd_result elsif cmd_result.is_a?(Float) exit_code = cmd_result.to_i elsif cmd_result.is_a?(String) exit_code = cmd_result.to_i else if cmd_result.respond_to?(:to_i) exit_code = cmd_result.to_i else # happens for aliases right now.. and execution flow probably, need to handle Array # uncomment to track them down, proceed with exit 0 for now #Morpheus::Logging::DarkPrinter.puts "debug: command #{command_name} produced an unexpected result: (#{cmd_result.class}) #{cmd_result}" if Morpheus::Logging.debug? exit_code = 0 end end return exit_code, err end |