32 lines
1.4 KiB
Swift
32 lines
1.4 KiB
Swift
|
|
import Vapor
|
||
|
|
|
||
|
|
struct FileNode: Content {
|
||
|
|
let name: String; let path: String; let isDirectory: Bool; var children: [FileNode]?
|
||
|
|
}
|
||
|
|
struct FileContentResponse: Content { let path: String; let content: String }
|
||
|
|
struct FileSaveRequest: Content { let path: String; let content: String }
|
||
|
|
struct BuildRequest: Content {
|
||
|
|
let projectPath: String; let scheme: String; let destination: String
|
||
|
|
let action: BuildAction; let configuration: String
|
||
|
|
let preBuildHooks: [PreBuildHook]; let bundleIdentifier: String?
|
||
|
|
let extraBuildSettings: [String]
|
||
|
|
}
|
||
|
|
enum BuildAction: String, Codable { case build; case buildAndRun }
|
||
|
|
struct BuildSessionResponse: Content { let sessionId: String; let webSocketURL: String }
|
||
|
|
struct ConnectedDevice: Content {
|
||
|
|
let udid: String; let name: String; let model: String
|
||
|
|
let osVersion: String; let isNetworkConnected: Bool
|
||
|
|
}
|
||
|
|
struct BuildLogMessage: Content {
|
||
|
|
enum MessageType: String, Codable { case stdout, stderr, status }
|
||
|
|
let type: MessageType; let text: String; let exitCode: Int?
|
||
|
|
}
|
||
|
|
struct PreBuildHook: Codable {
|
||
|
|
let name: String; let command: String; let workingDirectory: String
|
||
|
|
let timeoutSeconds: Int; let continueOnFailure: Bool
|
||
|
|
static func xcodeGen(projectRoot: String) -> PreBuildHook {
|
||
|
|
PreBuildHook(name: "XcodeGen", command: "./generate.sh",
|
||
|
|
workingDirectory: projectRoot, timeoutSeconds: 60, continueOnFailure: false)
|
||
|
|
}
|
||
|
|
}
|