Hook up cleanup

This commit is contained in:
Armin Ronacher 2025-06-16 04:48:20 +02:00
parent eb12804a0b
commit 482f48052c
2 changed files with 17 additions and 1 deletions

View file

@ -39,7 +39,6 @@
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
Local.xcconfig,
Local.xcconfig.template,
Shared.xcconfig,
version.xcconfig,

View file

@ -173,6 +173,10 @@ public final class TunnelServer {
return await self.sendSessionInput(request: request, sessionId: sessionId)
}
router.post("/api/cleanup-exited") { _, _ async -> Response in
await self.cleanupExitedSessions()
}
router.get("/api/fs/browse") { request, _ async -> Response in
await self.browseFileSystem(request: request)
}
@ -797,6 +801,19 @@ public final class TunnelServer {
}
}
private func cleanupExitedSessions() async -> Response {
do {
_ = try await executeTtyFwd(args: ["--control-path", ttyFwdControlDir, "--cleanup"])
let response = SimpleResponse(success: true, message: "All exited sessions cleaned up")
return jsonResponse(response)
} catch {
logger.error("Error cleaning up exited sessions: \(error)")
return errorResponse(message: "Failed to cleanup exited sessions")
}
}
private func browseFileSystem(request: Request) async -> Response {
let dirPath = String(request.uri.queryParameters.first { $0.key == "path" }?.value ?? "~")