lib/deploy.js
function createDeployTasks(depolyConfs, files, flaten){
        var tasks = flaten ? [] : {};
        fis.util.map(files, function(subpath, file) {
            fis.util.map(depolyConfs, function(name, depolyConf) {
                var target = flaten? tasks : (tasks[name] = tasks[name] || []);
                depolyConf.forEach(function(d) {
                    if(
                        file.release &&
                        file.release.indexOf(d.from) === 0 &&   //relate to replaceFrom
                        fis.util.filter(file.release, d.include, d.exclude)
                    ) {
                        target.push({dest : d, file : file });
                    }

                });
            });

        });

        return tasks;
    }
function createDeployTasks(depolyConfs, files, flaten){
        var tasks = flaten ? [] : {};
        fis.util.map(files, function(subpath, file) {
            fis.util.map(depolyConfs, function(name, depolyConf) {
                var target = flaten? tasks : (tasks[name] = tasks[name] || []);
                depolyConf.forEach(function(d) {
                    if(
                        file.release &&
                        file.release.indexOf(d.from) === 0 &&   //relate to replaceFrom
                        fis.util.filter(file.release, d.include, d.exclude)
                    ) {
                        target.push({dest : d, file : file });
                    }

                });
            });

        });

        return tasks;
    }
function createDeployTasks ( depolyConfs , files , flaten ) { var tasks = flaten ? [ ] : { } ; fis . util . map ( files , function ( subpath , file ) { fis . util . map ( depolyConfs , function ( name , depolyConf ) { var target = flaten ? tasks : ( tasks [ name ] = tasks [ name ] || [ ] ) ; depolyConf . forEach ( function ( d ) { if ( file . release && file . release . indexOf ( d . from ) === 0 && //relate to replaceFrom fis . util . filter ( file . release , d . include , d . exclude ) ) { target . push ( { dest : d , file : file } ) ; } } ) ; } ) ; } ) ; return tasks ; }
create task for files
@param  {[type]} deploy config
@param  {[type]} files
@param  {[type]} tasks should wrap with deploy name or not
@return {[type]}
create task for files