Code coverage report for tasks/wrappers/bower.js

Statements: 22.73% (10 / 44)      Branches: 0% (0 / 16)      Functions: 0% (0 / 13)      Lines: 23.81% (10 / 42)      Ignored: none     

All files » tasks/wrappers/ » bower.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 741 1 1 1 1   1               1                   1                                                   1                                     1        
var Promise = require('es6-promise').Promise;
var findup = require('findup-sync');
var bower = require('bower');
var log = require('../utils/log');
var fs = require('../utils/fs');
 
function install(args){
    return new Promise(function(resolve, reject){
        var exec = bower.commands.install(args);
        exec.on('end', resolve);
        exec.on('error', reject);
    });
}
 
function register(){
    var pkg = require(findup('./package.json'));
    var bowerPkg = require(findup('./bower.json'));
    return new Promise(function(resolve, reject){
        var exec = bower.commands.register(bowerPkg.name, pkg.repository.url);
        exec.on('end', resolve);
        exec.on('error', reject);
    });
}
 
function filesInGitPlusBowerFiles(){
    var bowerPkg = require(findup('./bower.json'));
    var files;
    log.info('    * Finding files that match bower.json');
    if (['**/.*','**/*'].indexOf(bowerPkg.ignore[0]) >=0){
        files = bowerPkg.ignore.map(function(glob, i){
            if (i===0) return '';
            return (glob.charAt(0) === '!') ? glob.substr(1) : glob;
        });
        files = files.filter(function(file){ return file!=='';});
        files = '*{' + files.join(',') + '}';
    } else {
        log.onError('Please invers bower.json "ignore" array.\n  ie. use \'**/*\' as the first item');
        //var exclusionGlob = './!(node_modules|bower_components)*{*,**/**}';
        //fs.glob(exclusionGlob).then(function(fileObjs){
        //
        //});
    }
    return fs.glob(files).then(function(fileObjs){
        log.info('    * Found ' + fileObjs.length + ' file(s)');
        return fileObjs.map(function(fileObj){
            return fileObj.path.replace(fileObj.base,'');
        });
    });
}
 
function release(opts){
    var ghPages = require('gh-pages');
    opts = opts || {};
 
    return filesInGitPlusBowerFiles().then(function(files){
        return new Promise(function(resolve, reject){
            return ghPages.publish('.',{
                src: '*{' + files.join(',') + '}',
                message: opts.message || 'Bower Release',
                branch: opts.branch || 'latest',
                tag: opts.tag},  function(err) {
                ghPages.clean();
                err && reject(err);
                !err && resolve();
            });
        });
    }).catch(log.onError);
}
 
module.exports = {
    release : release,
    register : register,
    install : install
};