const net = require('net');
const port = process.env.PORT ? (process.env.PORT - 100) : 3000;

process.env.ELECTRON_START_URL = `http://localhost:${port}`;

const client = new net.Socket();

let startedElectron = false;

const tryConnection = () =>
	client.connect({ port: port }, () =>
	{
		client.end();

		if (!startedElectron)
		{
			// eslint-disable-next-line no-console
			console.log('starting electron');

			startedElectron = true;

			const exec = require('child_process').exec;

			const electron = exec('npm run electron');

			electron.stdout.on('data', (data) =>
			{
				// eslint-disable-next-line no-console
				console.log(`stdout: ${data.toString()}`);
			});
		}
	});

tryConnection();

client.on('error', () =>
{
	setTimeout(tryConnection, 1000);
});
