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