Skip to content

Instantly share code, notes, and snippets.

@rektide
Created September 19, 2014 01:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rektide/af9236600bf1932ab4b7 to your computer and use it in GitHub Desktop.
Save rektide/af9236600bf1932ab4b7 to your computer and use it in GitHub Desktop.
Gulp with Promises, take 1
var fs= require('when/node').liftAll(require('fs'))
var gulp= require('gulp'),
when= require('when')
//// configuration registry ////
exports.resourceDir = 'resources'
//// util ////
function endStream(stream){
var defer= when.defer()
stream.once('end', function(){
defer.resolve()
})
return defer.promise
}
//// resource fetching utils ////
function downloadUrlFile(file, dir){
return (function download(){
var download= require('gulp-download'),
filename= dir ? dir+'/'+file : file,
url= fs.readFile(filename+'.url', 'utf8'),
downloadStream= url.then(download).then(function(content){
var stream= content.pipe(gulp.dest(filename))
return endStream(stream)
})
return downloadStream
})
}
//// resource fetching ////
var downloadSchema= downloadUrlFile('all.json', 'resources')
gulp.task('resources-schema', downloadSchema)
gulp.task('resources', function(){
return when.all([downloadSchema])
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment