#!/usr/bin/env node if (!require('assert').strict) { console.error("We require Node.js version 10 or later; you're using " + process.version); process.exit(1); } var execSync = require('child_process').execSync; var fs = require('fs'); process.chdir(__dirname); try { require.resolve('@babel/core'); } catch (e) { console.log('Installing dependencies...'); execSync('npm install', {stdio: 'inherit'}); } try { require.resolve('./config/config'); } catch (err) { if (err.code !== 'MODULE_NOT_FOUND') throw err; // should never happen console.log('config.js does not exist. Creating one with default settings...'); fs.writeFileSync( 'config/config.js', fs.readFileSync('config/config-example.js') ); } var options = {cwd: __dirname, stdio: 'inherit'}; var full = ''; switch (process.argv[2] || '') { case 'full': execSync(`node ./build-tools/build-indexes`, options); execSync(`node ./build-tools/build-learnsets`, options); execSync(`node ./build-tools/build-minidex`, options); full = ' full'; break; case 'indexes': execSync(`node ./build-tools/build-indexes`, options); break; case 'learnsets': execSync(`node ./build-tools/build-learnsets`, options); break; case 'minidex': case 'sprites': execSync(`node ./build-tools/build-minidex`, options); break; case 'commands': execSync(`node ./build-tools/build-commands`, options); break; case 'replays': execSync(`node ./build-tools/build-replays`, options); process.exit(); break; case 'test-only': break; case '': break; default: console.log(`Unrecognized command ${process.argv[2]}`); process.exit(); break; } execSync(`node ./build-tools/update` + full, options); if (full) { try { execSync(`node ./build-tools/build-commands`, options); execSync(`node ./build-tools/build-replays`, options); } catch (e) { console.error(e); } }