@@ -107,6 +107,7 @@ extension UTMScriptingConfigImpl {
107
107
" drives " : config. drives. map ( { serializeQemuDriveExisting ( $0) } ) ,
108
108
" networkInterfaces " : config. networks. enumerated ( ) . map ( { serializeQemuNetwork ( $1, index: $0) } ) ,
109
109
" serialPorts " : config. serials. enumerated ( ) . map ( { serializeQemuSerial ( $1, index: $0) } ) ,
110
+ " qemuAdditionalArguments " : config. qemu. additionalArguments. map ( { serializeQemuAdditionalArgument ( $0) } ) ,
110
111
]
111
112
}
112
113
@@ -188,6 +189,14 @@ extension UTMScriptingConfigImpl {
188
189
]
189
190
}
190
191
192
+ private func serializeQemuAdditionalArgument( _ argument: QEMUArgument ) -> [ AnyHashable : Any ] {
193
+ var serializedArgument : [ AnyHashable : Any ] = [
194
+ " argumentString " : argument. string
195
+ ]
196
+
197
+ return serializedArgument
198
+ }
199
+
191
200
private func serializeAppleConfiguration( _ config: UTMAppleConfiguration ) -> [ AnyHashable : Any ] {
192
201
[
193
202
" name " : config. information. name,
@@ -338,6 +347,9 @@ extension UTMScriptingConfigImpl {
338
347
if let serialPorts = record [ " serialPorts " ] as? [ [ AnyHashable : Any ] ] {
339
348
try updateQemuSerials ( from: serialPorts)
340
349
}
350
+ if let qemuAdditionalArguments = record [ " qemuAdditionalArguments " ] as? [ [ AnyHashable : Any ] ] {
351
+ try updateQemuAdditionalArguments ( from: qemuAdditionalArguments)
352
+ }
341
353
}
342
354
343
355
private func parseQemuDriveInterface( _ value: AEKeyword ? ) -> QEMUDriveInterface ? {
@@ -500,6 +512,19 @@ extension UTMScriptingConfigImpl {
500
512
}
501
513
}
502
514
515
+ private func updateQemuAdditionalArguments( from records: [ [ AnyHashable : Any ] ] ) throws {
516
+ let config = config as! UTMQemuConfiguration
517
+ let additionalArguments = records. compactMap { record -> QEMUArgument ? in
518
+ guard let argumentString = record [ " argumentString " ] as? String else { return nil }
519
+ var argument = QEMUArgument ( argumentString)
520
+
521
+ return argument
522
+ }
523
+ // Update entire additional arguments with new one.
524
+ config. qemu. additionalArguments = additionalArguments
525
+ }
526
+
527
+
503
528
private func updateAppleConfiguration( from record: [ AnyHashable : Any ] ) throws {
504
529
let config = config as! UTMAppleConfiguration
505
530
if let name = record [ " name " ] as? String , !name. isEmpty {
0 commit comments