1 | 'use strict';
|
2 |
|
3 | var path = require('path')
|
4 | var fs = require('fs')
|
5 | var Promise = require('bluebird')
|
6 | var mkdirp = require('mkdirp')
|
7 | var debug = require('debug')('darko')
|
8 |
|
9 |
|
10 |
|
11 | module.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 |
|
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 | }
|