@@ -35,9 +35,33 @@ enum Env {
3535 if envValue? . isEmpty == false {
3636 return envValue
3737 }
38+ if let argumentValue = launchArgumentValue ( key) {
39+ return argumentValue
40+ }
3841 return infoPlistValue ( key)
3942 }
4043
44+ private static func launchArgumentValue( _ key: String ) -> String ? {
45+ let arguments = ProcessInfo . processInfo. arguments
46+ for argument in arguments {
47+ for prefix in [ " - \( key) = " , " -- \( key) = " , " \( key) = " ] where argument. hasPrefix ( prefix) {
48+ let value = String ( argument. dropFirst ( prefix. count) ) . trimmingCharacters ( in: . whitespacesAndNewlines)
49+ return value. isEmpty ? nil : value
50+ }
51+ }
52+
53+ for (index, argument) in arguments. enumerated ( ) where argument == " - \( key) " || argument == " -- \( key) " || argument == key {
54+ let nextIndex = index + 1
55+ guard nextIndex < arguments. count else { return " true " }
56+ let value = arguments [ nextIndex]
57+ guard !value. hasPrefix ( " - " ) else { return " true " }
58+ let trimmed = value. trimmingCharacters ( in: . whitespacesAndNewlines)
59+ return trimmed. isEmpty ? nil : trimmed
60+ }
61+
62+ return nil
63+ }
64+
4165 private static func boolConfigValue( _ key: String ) -> Bool {
4266 guard let value = configValue ( key) ? . lowercased ( ) else { return false }
4367 return [ " 1 " , " true " , " yes " , " y " ] . contains ( value)
@@ -167,7 +191,15 @@ enum Env {
167191 }
168192
169193 static var isTrezorEmulatorTesting : Bool {
170- ( isDebug || isE2E) && boolConfigValue ( " TEST_TREZOR_EMU " )
194+ #if TEST_TREZOR_EMU
195+ return isDebug || isE2E
196+ #else
197+ return ( isDebug || isE2E) && boolConfigValue ( " TEST_TREZOR_EMU " )
198+ #endif
199+ }
200+
201+ static var shouldResetTrezorEmulatorState : Bool {
202+ isTrezorEmulatorTesting && boolConfigValue ( " TEST_TREZOR_RESET_STATE " )
171203 }
172204
173205 static var appStorageUrl : URL {
0 commit comments