diff --git a/Sources/ProjectSpec/Scheme.swift b/Sources/ProjectSpec/Scheme.swift index db6aca73..bb0a4bb9 100644 --- a/Sources/ProjectSpec/Scheme.swift +++ b/Sources/ProjectSpec/Scheme.swift @@ -88,10 +88,12 @@ public struct Scheme: Equatable { public var script: String public var name: String public var settingsTarget: String? - public init(name: String, script: String, settingsTarget: String? = nil) { + public var shell: String? + public init(name: String, script: String, shell: String? = nil, settingsTarget: String? = nil) { self.script = script self.name = name self.settingsTarget = settingsTarget + self.shell = shell } } @@ -400,6 +402,7 @@ extension Scheme.ExecutionAction: JSONObjectConvertible { script = try jsonDictionary.json(atKeyPath: "script") name = jsonDictionary.json(atKeyPath: "name") ?? "Run Script" settingsTarget = jsonDictionary.json(atKeyPath: "settingsTarget") + shell = jsonDictionary.json(atKeyPath: "shell") } } @@ -409,6 +412,7 @@ extension Scheme.ExecutionAction: JSONEncodable { "script": script, "name": name, "settingsTarget": settingsTarget, + "shell": shell ] } } diff --git a/Sources/XcodeGenKit/SchemeGenerator.swift b/Sources/XcodeGenKit/SchemeGenerator.swift index 1f2a0810..e379e799 100644 --- a/Sources/XcodeGenKit/SchemeGenerator.swift +++ b/Sources/XcodeGenKit/SchemeGenerator.swift @@ -208,7 +208,12 @@ public class SchemeGenerator { .first { settingsTarget == $0.buildableReference.blueprintName }? .buildableReference } - return XCScheme.ExecutionAction(scriptText: action.script, title: action.name, environmentBuildable: environmentBuildable) + return XCScheme.ExecutionAction( + scriptText: action.script, + title: action.name, + shellToInvoke: action.shell, + environmentBuildable: environmentBuildable + ) } let schemeTarget: ProjectTarget?