simplified options to need. now only forceDownload and forceBuild

This commit is contained in:
Igor Klopov 2016-08-18 20:21:05 +03:00
parent ef69cb2760
commit 4fab7ba150
2 changed files with 12 additions and 25 deletions

View File

@ -7,12 +7,11 @@ async function main () {
const nodeRange = argv.n || argv._.shift();
const platform = argv.p || argv._.shift();
const arch = argv.a || argv._.shift();
const dontReadCache = argv.drc;
const dontDownload = argv.dd;
const dontBuild = argv.db;
const local = await need({ nodeRange, platform, arch,
dontReadCache, dontDownload, dontBuild });
log.info('Result', local);
const forceDownload = argv.d;
const forceBuild = argv.b;
const local = await need({ nodeRange, platform,
arch, forceDownload, forceBuild });
log.info(local);
}
main().catch((error) => {

View File

@ -1,5 +1,4 @@
import * as system from './system.js';
import { abiToNodeRange, hostArch, // eslint-disable-line no-duplicate-imports
import { abiToNodeRange, hostArch,
hostPlatform, toFancyArch, toFancyPlatform } from './system.js';
import { localPlace, remotePlace } from './places.js';
import build from './build.js';
@ -13,7 +12,7 @@ import { version } from '../package.json';
export async function need ({
nodeRange = 'latest', platform = hostPlatform,
arch = hostArch, dontReadCache, dontDownload, dontBuild
arch = hostArch, forceDownload, forceBuild
} = {}) {
nodeRange = abiToNodeRange(nodeRange); // m48 -> '6'
nodeRange = nodeRange.toString(); // 6 -> '6'
@ -31,28 +30,17 @@ export async function need ({
const local = localPlace({ arch, nodeVersion, platform, version });
const name = path.basename(local);
if (dontReadCache) {
log.info('Refusing to read cache');
} else {
log.info('Looking in cache', name);
if (!forceDownload && !forceBuild) {
if (await exists(local)) return local;
log.warn('Not found in cache');
}
if (dontDownload) {
log.info('Refusing to download');
} else {
if (!forceBuild) {
log.info('Downloading', name);
const remote = remotePlace({ arch, nodeVersion, platform, version });
if (await download(remote, local)) return local;
log.warn('Not found in GitHub releases');
}
if (dontBuild) {
log.info('Refusing to build from source');
} else {
log.info('Building from source');
await build(nodeVersion, arch, local);
return local;
}
log.info('Building from source');
await build(nodeVersion, arch, local);
return local;
}
export { system };