示例#1
0
文件: index.js 项目: krisanalfa/pax
var cmd = function(pax, args, opts) {
    logger = pax.log;
    opts = opts || {};

    var deferred = d.Deferred(),
        bowerFile = './bower.json',
        log = opts.log || cmd.log;

    log.data('start');

    if (fs.existsSync(bowerFile)) {
        var manifest = JSON.parse(fs.readFileSync(bowerFile, { encoding: 'utf8' }));

        for(var i in manifest.dependencies) {
            log.data('dependency', {
                name: i,
                version: manifest.dependencies[i]
            });
        }
    }

    log.data('end');

    if (fs.existsSync(bowerFile)) {
        deferred.resolve();
    } else {
        deferred.reject(new Error('No bower dependencies'));
    }

    return deferred.promise();
};
示例#2
0
文件: index.js 项目: krisanalfa/pax
var composer = function(pax, args, opts) {
    opts = opts || {};
    var deferred = d.Deferred(),
        log = opts.log || composer.log;

    log.data('start');

    if (composer.manifest) {
        for(var i in composer.manifest.require) {
            log.data('dependency', {
                name:i,
                version:composer.manifest.require[i]
            });
        }
    }

    log.data('end');

    if (composer.manifest) {
        deferred.resolve();
    } else {
        deferred.reject(new Error('No composer dependencies'));
    }

    return deferred.promise();
};
示例#3
0
文件: index.js 项目: krisanalfa/pax
var dep = function(pax, args, opts) {
    var deps = dep.getPackageDependencies(),
        deferred = d.Deferred(),
        w = d.when(function() {});

    for(var i in deps) {
        w = w.then(pax.command.get([deps[i]]));
    }

    w.then(deferred.resolve, deferred.reject);

    return deferred.promise();
};
示例#4
0
文件: add.js 项目: krisanalfa/pax
    var add = function() {
        var deferred = d.Deferred();

        bower.commands.install(args, {save:true})
            .on('log', function(result) {
                pax.log.out(result.id, result.message);
                // console.log('log', result);
            })
            .on('error', function() {
                console.log('fail', arguments);
            })
            .on('end', function() {
                // console.log('end', arguments);
                deferred.resolve();
            });
        return deferred.promise();
    };
示例#5
0
文件: rm.js 项目: krisanalfa/pax
module.exports = function(pax, args, opts) {
    var deferred = d.Deferred(),
        bowerFile = './bower.json';


    if (fs.existsSync(bowerFile)) {
        var manifest = JSON.parse(fs.readFileSync(bowerFile, {encoding:'utf8'}));
        if (manifest && manifest.dependencies && manifest.dependencies[args[0]]) {
            delete manifest.dependencies[args[0]];
            fs.writeFileSync(bowerFile, JSON.stringify(manifest, null, 2));
            rm('-rf', './bower_components/' + args[0]);
            deferred.resolve();
        } else {
            deferred.reject(new Error('No bower dependency:' + args[0]));
        }
    } else {
        deferred.reject(new Error('No bower dependencies'));
    }

    return deferred.promise();
};
示例#6
0
文件: add.js 项目: krisanalfa/pax
    var checkArgs = function() {
        var deferred = d.Deferred();
        if (args.length > 0) {
            var newArgs = [];
            for(var i in args) {
                var parsed = url.parse(args[i]);
                if (parsed.protocol) {
                    if (parsed.protocol == 'git+ssh:') {
                        newArgs.push(args[i].substr('git+ssh://'.length));
                        continue;
                    }
                }
                newArgs.push(args[i]);
            }

            args = newArgs;

            deferred.resolve();
        } else {
            deferred.reject(new Error('No package to add'));
        }
        return deferred.promise();
    };
示例#7
0
文件: add.js 项目: krisanalfa/pax
module.exports = function(pax, args, opts) {
    var deferred = d.Deferred(),
        bowerFile = './bower.json';

    var checkArgs = function() {
        var deferred = d.Deferred();
        if (args.length > 0) {
            var newArgs = [];
            for(var i in args) {
                var parsed = url.parse(args[i]);
                if (parsed.protocol) {
                    if (parsed.protocol == 'git+ssh:') {
                        newArgs.push(args[i].substr('git+ssh://'.length));
                        continue;
                    }
                }
                newArgs.push(args[i]);
            }

            args = newArgs;

            deferred.resolve();
        } else {
            deferred.reject(new Error('No package to add'));
        }
        return deferred.promise();
    };

    var checkBower = function() {
        var deferred = d.Deferred();

        if (!fs.existsSync(bowerFile)) {
            pax.log.out('');
            pax.log.info('Bower is not initialized yet.');
            pax.log.info('Luckily pax will guide you through minimum bower initialization');
            pax.log.out('');

            bower.commands.init({interactive: true})
                .on('log', function(result) {
                    // console.log('log', result);
                })
                .on('prompt', function(p, callback) {
                    if (p[0].name == 'prompt') {
                        return callback({prompt: true});
                    }

                    var schema = {
                        properties: {
                            name: {
                                name: 'Name',
                                default: pax.pkg.manifest.name,
                                required: true
                            },
                            description: {
                                name: 'Description',
                                default: pax.pkg.manifest.description,
                                required: true
                            },
                            version: {
                                name: 'Version',
                                default: pax.pkg.manifest.version,
                                required: true
                            }
                        }
                    };
                    prompt.message = 'bower';
                    prompt.colors = false;
                    prompt.start();
                    prompt.get(schema, function(err, json) {
                        if (!err) {
                            json.keywords = '';
                            json.authors = '';
                            callback(json);
                        }
                    });
                })
                .on('error', function() {
                    console.log('error', arguments);
                })
                .on('end', function() {
                    pax.log.out('');
                    pax.log.info('Bower is initialized.');
                    pax.log.out('');

                    deferred.resolve();
                    // console.log('end', arguments);
                });
        } else {
            deferred.resolve();
        }

        return deferred.promise();
    };


    var add = function() {
        var deferred = d.Deferred();

        bower.commands.install(args, {save:true})
            .on('log', function(result) {
                pax.log.out(result.id, result.message);
                // console.log('log', result);
            })
            .on('error', function() {
                console.log('fail', arguments);
            })
            .on('end', function() {
                // console.log('end', arguments);
                deferred.resolve();
            });
        return deferred.promise();
    };

    d.when(checkArgs())
        .then(checkBower)
        .then(add)
        .then(deferred.resolve, deferred.reject);

    return deferred.promise();
};
示例#8
0
文件: add.js 项目: krisanalfa/pax
    var checkBower = function() {
        var deferred = d.Deferred();

        if (!fs.existsSync(bowerFile)) {
            pax.log.out('');
            pax.log.info('Bower is not initialized yet.');
            pax.log.info('Luckily pax will guide you through minimum bower initialization');
            pax.log.out('');

            bower.commands.init({interactive: true})
                .on('log', function(result) {
                    // console.log('log', result);
                })
                .on('prompt', function(p, callback) {
                    if (p[0].name == 'prompt') {
                        return callback({prompt: true});
                    }

                    var schema = {
                        properties: {
                            name: {
                                name: 'Name',
                                default: pax.pkg.manifest.name,
                                required: true
                            },
                            description: {
                                name: 'Description',
                                default: pax.pkg.manifest.description,
                                required: true
                            },
                            version: {
                                name: 'Version',
                                default: pax.pkg.manifest.version,
                                required: true
                            }
                        }
                    };
                    prompt.message = 'bower';
                    prompt.colors = false;
                    prompt.start();
                    prompt.get(schema, function(err, json) {
                        if (!err) {
                            json.keywords = '';
                            json.authors = '';
                            callback(json);
                        }
                    });
                })
                .on('error', function() {
                    console.log('error', arguments);
                })
                .on('end', function() {
                    pax.log.out('');
                    pax.log.info('Bower is initialized.');
                    pax.log.out('');

                    deferred.resolve();
                    // console.log('end', arguments);
                });
        } else {
            deferred.resolve();
        }

        return deferred.promise();
    };