fastlane/lib/fastlane/server/command_parser.rb in fastlane-2.74.0 vs fastlane/lib/fastlane/server/command_parser.rb in fastlane-2.74.1

- old
+ new

@@ -3,18 +3,42 @@ require 'json' module Fastlane class CommandParser def self.parse(json: nil) + if json.strip == "done" + return intercept_old_done_command + end + command_json = JSON.parse(json) + command_type_json = command_json['commandType'] + + if command_type_json.nil? + # Old Swift style (needs upgrade) + return handle_old_style_action_command(command_json: command_json) + else + # New Swift command style + return handle_new_style_commands(command_json: command_json) + end + end + + def self.handle_new_style_commands(command_json: nil) command_type = command_json['commandType'].to_sym command = command_json['command'] case command_type when :action return ActionCommand.new(json: command) when :control return ControlCommand.new(json: command) end + end + + def self.handle_old_style_action_command(command_json: nil) + return ActionCommand.new(json: command_json) + end + + def self.intercept_old_done_command + return ControlCommand.new(json: '{"command":"done"}') end end end