UNPKG

834 BJavaScriptView Raw
1'use strict';
2
3var path = require('path')
4var fs = require('fs')
5var Promise = require('bluebird')
6var mkdirp = require('mkdirp')
7var debug = require('debug')('darko')
8
9
10
11module.exports = function writeStatic(fpath, site) {
12 var d = Promise.defer()
13 var rpath = path.relative(site.cwd, fpath)
14 var dest = path.resolve(site.dest, site.baseurl.slice(1), rpath)
15
16 debug('Coping file ' + rpath)
17 mkdirp(path.dirname(dest), function(err) {
18 if (err) d.reject(new Error(err))
19
20 fs.createReadStream(fpath)
21 .pipe(fs.createWriteStream(dest))
22 .on('error', function(err) {
23 // create an Error instance hence we can capture the stack trace here.
24 d.reject(new Error(err))
25 })
26 .on('finish', function() {
27 debug('Copied file ' + rpath)
28 d.resolve()
29 })
30 })
31
32 return d.promise
33}