You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Musubi/Packages/MusubiKit/Sources/MusubiCore/RouteArgument.swift

17 lines
751 B

/// Parses `--route "<NDI name>=<screen index>"` launch arguments (for scripted tests until scenes exist).
public enum RouteArgument {
public struct Parsed: Equatable, Sendable {
public var ndiName: String
public var screenIndex: Int
}
public static func parse(_ arguments: [String]) -> [Parsed] {
zip(arguments, arguments.dropFirst()).compactMap { flag, value in
guard flag == "--route", let separator = value.lastIndex(of: "=") else { return nil }
let name = String(value[..<separator])
guard !name.isEmpty, let index = Int(value[value.index(after: separator)...]), index >= 0 else { return nil }
return Parsed(ndiName: name, screenIndex: index)
}
}
}

Powered by TurnKey Linux.