denis-sokolov/remote-dotfiles

View on GitHub
src/custom.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict';

var fs = require('fs');

var Promise = require('promise');
var Vinyl = require('vinyl');

module.exports = function(util, app){
    var filesSetting = util.setting(app, 'custom');

    var getData = function(input){
        if (input.substr(0, 1) === '/')
            return Promise.denodeify(fs.readFile)(input);
        return Promise.resolve(input);
    };

    return function(stream){
        var files = filesSetting() || {};
        return Promise.all(Object.keys(files).map(function(key){
            return getData(files[key])
                .then(function(data){
                    stream.push(new Vinyl({
                        path: key,
                        contents: new Buffer(data)
                    }));
                });
        }));
    };
};