UNPKG

tarifa

Version:

Your friendly toolchain for mobile app development on top of Apache Cordova

49 lines (40 loc) 1.6 kB
var Q = require('q'), path = require('path'), fs = require('fs'), exec = require('child_process').exec, log = require('../helper/log'), settings = require('../settings'); function clean(root, platform) { return function () { var defer = Q.defer(), cwd = path.resolve(root, settings.cordovaAppPath, 'platforms', platform, 'cordova'), cmd = 'clean', options = { cwd: cwd, timeout: 0, maxBuffer: 1024 * 4000 }; if(!fs.existsSync(path.resolve(cwd, cmd))) return Q.resolve(); cmd = fs.readFileSync(path.resolve(cwd, cmd), 'utf-8').indexOf('#!/bin/bash') > -1 ? './' + cmd : 'node ' + cmd; cmd += ' ' + require(path.resolve(__dirname, '../platforms', platform, 'actions/clean')).options.join(' '); var child = exec(cmd, options, function (err, stdout, stderr) { if(err) { log.send('error', 'command: clean'); log.send('error', 'command stderr %s', stderr); defer.reject('command stderr ' + err); return; } log.send('success', 'cleaning platform %s', platform); defer.resolve(); }); child.stdout.on('data', function (msg) { log.send('info', msg.replace(/\n/g, '').toString()); }); return defer.promise; }; } module.exports = function (root, platforms) { return platforms.reduce(function (p, platform) { return Q.when(p, clean(root, platform)); }, Q.resolve()); };