initialize-profile-from-default.ts 833 B

123456789101112131415161718
  1. /** Synchronize competing source-process profile initialization for the race acceptance test. */
  2. import { existsSync, writeFileSync } from 'node:fs'
  3. import { setTimeout as delay } from 'node:timers/promises'
  4. import { initializeProfileFromDefault } from '../../src/profile-boot.ts'
  5. const [home, name, source, ready, gate] = process.argv.slice(2)
  6. if (home === undefined || name === undefined || source === undefined || ready === undefined || gate === undefined) {
  7. throw new Error('profile initialization fixture requires home, name, source, ready, and gate')
  8. }
  9. writeFileSync(ready, '')
  10. const deadline = Date.now() + 30_000
  11. while (!existsSync(gate)) {
  12. if (Date.now() >= deadline) throw new Error(`profile initialization fixture timed out waiting for ${gate}`)
  13. await delay(20)
  14. }
  15. initializeProfileFromDefault(name, source, home)