import fs from 'fs'
import cluster from 'cluster'
import { runner } from '../core/runner.mjs'

if (cluster.isPrimary) {
  try {
    fs.rmSync(util.getPathFromRoot('./db.json'))
  } catch {}
}

runner(import.meta.url, {
  name: 'test-runner-cluster',
  testappcluster: {
    cluster: 2,
    port: 31313,
    provider: 'git',
    url: 'http://localhost:61412/releases',
    updateEvery: 0.014,
    heartbeatTimeout: 100,
    heartbeatAttempts: 3,
    heartbeatAttemptsWait: 100,
    log: [{
      stream: 'process.stdout',
      level: 'info',
    }],
  }
}, 'db.json')
.then(
  function(core) {
    if (cluster.isPrimary) {
      let app = core.applications[0]
      app.ctx.log.on('newlog', function(record) {
        if (record.name !== app.name) {
          console.log(`[FROMWORKERAPP] ${record.name} (${record.pid}) ${record.msg}`)
        }
      })
      core.log.on('newlog', function(record) {
        if (record.pid !== process.pid) {
          console.log(`[FROMWORKERCORE] ${record.name} (${record.pid}) ${record.msg}`)
        }
      })
    }
    core.log.info('core is running')
  },
  function(err) {
    runner.log.error(err, 'Error starting runner')
    process.exit(1)
  }
)
