Update Xcode.Environment constructor to throw instead of returning nil
This commit is contained in:
parent
fcb0fab916
commit
93cfd2d9ae
|
@ -28,7 +28,7 @@ final class FrameworkEmbedder: FrameworkEmbedding {
|
|||
// MARK: - Internal
|
||||
|
||||
func embed(path _: AbsolutePath) throws {
|
||||
let environment = XcodeBuild.Environment()!
|
||||
let environment = try XcodeBuild.Environment()
|
||||
try embed(frameworkPath: RelativePath(CommandLine.arguments[1]),
|
||||
environment: environment)
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
import Basic
|
||||
import Foundation
|
||||
import TuistCore
|
||||
|
||||
class XcodeBuild {
|
||||
public enum Action: String {
|
||||
|
@ -15,6 +16,21 @@ class XcodeBuild {
|
|||
case installsrc
|
||||
}
|
||||
|
||||
enum EnvironmentError: FatalError {
|
||||
case missingVariable(String)
|
||||
|
||||
var type: ErrorType {
|
||||
return .abort
|
||||
}
|
||||
|
||||
var description: String {
|
||||
switch self {
|
||||
case let .missingVariable(value):
|
||||
return "The build variable \(value) is missing."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class Environment {
|
||||
public let configuration: String
|
||||
public let configurationBuildDir: String
|
||||
|
@ -61,21 +77,49 @@ class XcodeBuild {
|
|||
self.action = action
|
||||
}
|
||||
|
||||
public init?(environment: [String: String] = ProcessInfo.processInfo.environment) {
|
||||
guard let configuration = environment["CONFIGURATION"] else { return nil }
|
||||
guard let configurationBuildDir = environment["CONFIGURATION_BUILD_DIR"] else { return nil }
|
||||
guard let frameworksFolderPath = environment["FRAMEWORKS_FOLDER_PATH"] else { return nil }
|
||||
guard let builtProductsDir = environment["BUILT_PRODUCTS_DIR"] else { return nil }
|
||||
guard let targetBuildDir = environment["TARGET_BUILD_DIR"] else { return nil }
|
||||
guard let dwardDsymFolderPath = environment["DWARF_DSYM_FOLDER_PATH"] else { return nil }
|
||||
guard let expandedCodeSignIdentity = environment["EXPANDED_CODE_SIGN_IDENTITY"] else { return nil }
|
||||
guard let codeSignRequired = environment["CODE_SIGNING_REQUIRED"] else { return nil }
|
||||
guard let codeSigningAllowed = environment["CODE_SIGNING_ALLOWED"] else { return nil }
|
||||
guard let expandedCodeSignIdentityName = environment["EXPANDED_CODE_SIGN_IDENTITY_NAME"] else { return nil }
|
||||
guard let otherCodeSignFlags = environment["OTHER_CODE_SIGN_FLAGS"] else { return nil }
|
||||
guard let validArchs = environment["VALID_ARCHS"] else { return nil }
|
||||
guard let srcRoot = environment["SRCROOT"] else { return nil }
|
||||
guard let action = environment["ACTION"] else { return nil }
|
||||
public init(environment: [String: String] = ProcessInfo.processInfo.environment) throws {
|
||||
guard let configuration = environment["CONFIGURATION"] else {
|
||||
throw EnvironmentError.missingVariable("CONFIGURATION")
|
||||
}
|
||||
guard let configurationBuildDir = environment["CONFIGURATION_BUILD_DIR"] else {
|
||||
throw EnvironmentError.missingVariable("CONFIGURATION_BUILD_DIR")
|
||||
}
|
||||
guard let frameworksFolderPath = environment["FRAMEWORKS_FOLDER_PATH"] else {
|
||||
throw EnvironmentError.missingVariable("FRAMEWORKS_FOLDER_PATH")
|
||||
}
|
||||
guard let builtProductsDir = environment["BUILT_PRODUCTS_DIR"] else {
|
||||
throw EnvironmentError.missingVariable("BUILT_PRODUCTS_DIR")
|
||||
}
|
||||
guard let targetBuildDir = environment["TARGET_BUILD_DIR"] else {
|
||||
throw EnvironmentError.missingVariable("TARGET_BUILD_DIR")
|
||||
}
|
||||
guard let dwardDsymFolderPath = environment["DWARF_DSYM_FOLDER_PATH"] else {
|
||||
throw EnvironmentError.missingVariable("DWARF_DSYM_FOLDER_PATH")
|
||||
}
|
||||
guard let expandedCodeSignIdentity = environment["EXPANDED_CODE_SIGN_IDENTITY"] else {
|
||||
throw EnvironmentError.missingVariable("EXPANDED_CODE_SIGN_IDENTITY")
|
||||
}
|
||||
guard let codeSignRequired = environment["CODE_SIGNING_REQUIRED"] else {
|
||||
throw EnvironmentError.missingVariable("CODE_SIGNING_REQUIRED")
|
||||
}
|
||||
guard let codeSigningAllowed = environment["CODE_SIGNING_ALLOWED"] else {
|
||||
throw EnvironmentError.missingVariable("CODE_SIGNING_ALLOWED")
|
||||
}
|
||||
guard let expandedCodeSignIdentityName = environment["EXPANDED_CODE_SIGN_IDENTITY_NAME"] else {
|
||||
throw EnvironmentError.missingVariable("EXPANDED_CODE_SIGN_IDENTITY_NAME")
|
||||
}
|
||||
guard let otherCodeSignFlags = environment["OTHER_CODE_SIGN_FLAGS"] else {
|
||||
throw EnvironmentError.missingVariable("OTHER_CODE_SIGN_FLAGS")
|
||||
}
|
||||
guard let validArchs = environment["VALID_ARCHS"] else {
|
||||
throw EnvironmentError.missingVariable("VALID_ARCHS")
|
||||
}
|
||||
guard let srcRoot = environment["SRCROOT"] else {
|
||||
throw EnvironmentError.missingVariable("SRCROOT")
|
||||
}
|
||||
guard let action = environment["ACTION"] else {
|
||||
throw EnvironmentError.missingVariable("ACTION")
|
||||
}
|
||||
self.configuration = configuration
|
||||
self.configurationBuildDir = configurationBuildDir
|
||||
self.frameworksFolderPath = frameworksFolderPath
|
||||
|
|
Loading…
Reference in New Issue