// Note: this is not working because electron-builder needs access to env
// variables which are not defined in this context. To make it work, we'll need
// to somehow pass this to the execCommand call.

const execCommand = require('./execCommand');

async function main() {
	process.chdir(`${__dirname}/..`);

	const maxTries = 3;

	for (let i = 0; i < maxTries; i++) {
		try {
			console.info(await execCommand(['yarn', 'run', 'electron-builder'].join(' ')));
			console.info('electronBuilder: electron-builder completed successfully');
			break;
		} catch (error) {
			console.info(error.stdout);
			console.error(error);

			if (error.stdout.includes('cannot resolve') && i !== maxTries - 1) {
				console.info(`electronBuilder: electron-builder could not download an asset - trying again (${i + 1})`);
				continue;
			} else {
				throw error;
			}
		}
	}
}

module.exports = main;