UNPKG

vigour-wrapper

Version:
71 lines (62 loc) 1.88 kB
#!/usr/bin/env node --use_strict 'use strict' var path = require('path') var program = require('commander') var Promise = require('promise') var fs = require('vigour-fs/lib/server') var vBuilder = require('../lib/builder') var readFile = Promise.denodeify(fs.readFile) var fs_exists = function (p) { return new Promise(function (resolve, reject) { fs.exists(p, resolve) }) } var builderFactory = function (cwd) { return function (platforms) { build(platforms, cwd) } } program .version('0.0.1') .command('build [platforms...]') .action(builderFactory(process.cwd())) program.parse(process.argv) function build (platforms, cwd) { var pkgPath = path.join(cwd, 'package.json') console.log('arg') fs_exists(pkgPath) .then(function (exists) { var error if (!exists) { error = new Error("Can't find package.json") error.shouldBeHere = pkgPath throw error } else { return pkgPath } }) .then(readFile) .then(function (contents) { var parsed = JSON.parse(contents) var key if (!parsed.vigour || !parsed.vigour.native || !parsed.vigour.packer.assets) { throw new Error('package.json must contain vigour.native and vigour.packer.assets, see README.md') } parsed.vigour.native.root = cwd if (platforms.length > 0) { for (key in parsed.vigour.native.platforms) { if (!~platforms.indexOf(key)) { parsed.vigour.native.platforms[key] = false } } } parsed.vigour.native.cwd = cwd // TODO Document this parsed.vigour.native.packer = parsed.vigour.packer return vBuilder(parsed.vigour.native) }) .then(function (meta) { console.log('Build done in ' + meta.time + 'ms') }, function (reason) { console.error('Failure', reason, reason.stack) }) }