#!/usr/bin/env node

"use strict";

process.chdir(__dirname);

// Perform node version check before loading any other files or modules
// Doing this check as soon as possible allows us to avoid ES6 parser errors or other issues
var pkg = require("./package.json");
if (!require("semver").satisfies(process.version, pkg.engines.node)) {
	/* eslint-disable no-console */
	console.error("=== WARNING!");
	console.error("=== The oldest supported Node.js version is", pkg.engines.node);
	console.error("=== We strongly encourage you to upgrade, see https://nodejs.org/en/download/package-manager/ for more details\n");
	/* eslint-enable no-console */
}

require("./src/command-line");

#!/usr/bin/env node

"use strict";

process.chdir(__dirname);

// Perform node version check before loading any other files or modules
// Doing this check as soon as possible allows us to avoid ES6 parser errors or
// other issues
// Try to display warnings nicely, but gracefully degrade if anything goes wrong
var pkg = require("./package.json");
if (!require("semver").satisfies(process.version, pkg.engines.node)) {
	let colors;
	let log;

	try {
		colors = require("colors/safe");
	} catch (e) {
		colors = {};
		colors.green = colors.red = colors.bold = (x) => x;
	}

	try {
		log = require("./src/log");
	} catch (e) {
		log = {};
		log.warn = (msg) => console.error(`[WARN] ${msg}`); // eslint-disable-line no-console
	}

	log.warn(`The Lounge requires Node.js ${colors.green(pkg.engines.node)} (current version: ${colors.red(process.version)})`);
	log.warn(colors.bold("We strongly encourage you to upgrade Node.js"));
	log.warn("See https://nodejs.org/en/download/package-manager/ for more details");
}

require("./src/command-line");

Improve the Node version warning because why not
Improve the Node version warning because why not

This makes the warning look nice and consistent with the other logs we display, while being safe to never break if a dependency/loaded file is not compatible with this version of Node.
Note that there is some ES6 syntax (`let`, arrow functions, template literals), but The Lounge has not been compatible with Node v0.10 for a very long time now.
