const cp = require('child_process');
const path = require('path');

const TYPE = process.env.TYPE;
const MODE = process.env.MODE;

if (!TYPE) {
  console.error(`
Usage: TYPE={type} node start.js
       TYPE=node node start.js
  `.trim());

  process.exit(1);
}

const handler = ({
  node: () => {
    const root = path.join(__dirname, '../');
    const script = path.join(root, 'src/server/index.js');
    return cp.exec(`node ${script}`, {
      cwd: __dirname
    });
  },
  artillery: () => {
    const conf = path.join(__dirname, '../artillery/artillery-${MODE}.yml');
    const bin = path.join(__dirname, '../node_modules/.bin/artillery');
    return cp.exec(`${bin} run ${conf}`);
  }
})[TYPE];

if (!handler) {
  console.error(`No handler for ${TYPE}`);
  process.exit(1);
}

handler().stdout.pipe(process.stdout);
handler().stderr.pipe(process.stderr);
process.stdin.pipe(handler().stdin);
