process-lock-worker.ts 535 B

1234567891011121314151617
  1. import { ProcessLock } from "@opencode-ai/core/util/process-lock"
  2. import { Effect, Schema } from "effect"
  3. import fs from "node:fs/promises"
  4. const input = Schema.decodeUnknownSync(
  5. Schema.fromJsonString(Schema.Struct({ file: Schema.String, ready: Schema.String })),
  6. )(process.argv[2])
  7. await Effect.runPromise(
  8. Effect.scoped(
  9. Effect.gen(function* () {
  10. yield* ProcessLock.acquire(input.file)
  11. yield* Effect.promise(() => fs.writeFile(input.ready, String(process.pid)))
  12. return yield* Effect.never
  13. }),
  14. ),
  15. )