mirror of
https://github.com/morluto/rea.git
synced 2026-10-12 02:19:24 +00:00
* test(ci): allow transport delivery in source identity regression * fix(process): preserve partial evidence and verify detached cleanup * fix(process): scope Linux token sweeps by stable process identity * fix(process): retain environment permission failure codes * fix(process): wait for signaled processes before verifying cleanup * fix(process): verify sampled detached groups during cleanup * fix(electron): preserve prelaunch identities through cleanup * fix(process): retry growing Darwin process table snapshots * fix(process): retain compatibility with saved v3 capture evidence * fix(process): migrate saved v3 captures during reconstruction verification * fix(process): preserve cancellation during Darwin helper compilation * fix(process): propagate cancellation through ownership baselines * perf(javascript): cache canonical export comparison sort keys * fix(process): cancel provider ownership preparation before spawn * fix(process): isolate native compiler waiter cancellation
36 lines
1.0 KiB
Swift
36 lines
1.0 KiB
Swift
import Foundation
|
|
|
|
struct RunTokenResponse: Encodable {
|
|
let results: [RunTokenObservation]
|
|
}
|
|
|
|
struct ProcessIdentityResponse: Encodable {
|
|
let results: [ProcessIdentityObservation]
|
|
}
|
|
|
|
@main
|
|
struct ProcessRunTokenReaderMain {
|
|
static func main() {
|
|
let arguments = Array(CommandLine.arguments.dropFirst())
|
|
let identityMode = arguments.first == "--identities"
|
|
let pidArguments = identityMode ? Array(arguments.dropFirst()) : arguments
|
|
let pids = pidArguments.compactMap(Int32.init)
|
|
guard pids.count == pidArguments.count else {
|
|
fputs("invalid process ID input\n", stderr)
|
|
exit(64)
|
|
}
|
|
do {
|
|
let output: Data
|
|
if identityMode {
|
|
output = try JSONEncoder().encode(ProcessIdentityResponse(results: readProcessIdentities(pids: pids)))
|
|
} else {
|
|
output = try JSONEncoder().encode(RunTokenResponse(results: readRunTokens(pids: pids)))
|
|
}
|
|
FileHandle.standardOutput.write(output)
|
|
} catch {
|
|
fputs("could not encode process token observations\n", stderr)
|
|
exit(70)
|
|
}
|
|
}
|
|
}
|