Merge nucleic/vivid-glass-urchin-xoym into main
This commit is contained in:
@@ -133,7 +133,7 @@ enum VZAppRuntime {
|
||||
|
||||
/// Signals land here rather than on `.main`. See ``run(onSignal:body:)``.
|
||||
private static let signalQueue = DispatchQueue(
|
||||
label: "xyz.blakeslee.gitea-macos-runner.signals")
|
||||
label: "xyz.blakeslee.gitea-macos-vm-orchestrator.signals")
|
||||
|
||||
/// Starts the run loop and runs `body` alongside it. Never returns.
|
||||
///
|
||||
|
||||
@@ -21,7 +21,7 @@ struct ServiceCommand: AsyncParsableCommand {
|
||||
struct Install: AsyncParsableCommand {
|
||||
static let configuration = CommandConfiguration(
|
||||
commandName: "install",
|
||||
abstract: "Write ~/Library/LaunchAgents/xyz.blakeslee.gitea-macos-runner.plist and load it.",
|
||||
abstract: "Write ~/Library/LaunchAgents/\(LaunchdService.label).plist and load it.",
|
||||
discussion: """
|
||||
Points the agent at the installed, signed .app bundle — not at a bare \
|
||||
binary. The com.apple.security.virtualization entitlement only survives \
|
||||
@@ -46,6 +46,13 @@ struct ServiceCommand: AsyncParsableCommand {
|
||||
CLI.note("warning: \(RunnerConfig.expandTilde(options.configPath)) is missing or invalid; the agent will fail to start until it is fixed")
|
||||
}
|
||||
|
||||
// Done before install (which also does it) purely so the operator
|
||||
// is told: an agent silently vanishing from launchctl is alarming
|
||||
// if you do not know a rename happened.
|
||||
for legacy in LaunchdService.removeLegacyAgents() {
|
||||
CLI.note("removed legacy agent \(legacy) (renamed to \(LaunchdService.label))")
|
||||
}
|
||||
|
||||
try LaunchdService.install(executablePath: executablePath, configPath: configPath)
|
||||
|
||||
print("installed \(LaunchdService.agentPlistURL.path)")
|
||||
@@ -68,7 +75,11 @@ struct ServiceCommand: AsyncParsableCommand {
|
||||
func run() async throws {
|
||||
let path = LaunchdService.agentPlistURL.path
|
||||
let existed = FileManager.default.fileExists(atPath: path)
|
||||
let legacy = LaunchdService.removeLegacyAgents()
|
||||
try LaunchdService.uninstall()
|
||||
for label in legacy {
|
||||
print("removed legacy agent \(label)")
|
||||
}
|
||||
print(existed ? "removed \(path)" : "not installed (\(path))")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user