UNPKG

savant-cli

Version:
53 lines (47 loc) 1.37 kB
'use strict'; var Client = require('../client') , utils = require('../utils') , async = require('async') , path = require('path') , fs = require('fs') , colors = require('cli-color'); function done(err) { if (err) { console.error(err); process.exit(1); } process.exit(0); } module.exports = exports = function(opts) { var dir = process.cwd() , siteRoot = path.join(dir, 'site'); Client.getClient(function(err, cli) { if (err) return done(err); function _push(tree, cb) { if (tree.files) { async.each(tree.files, _push, cb); } else { var file = path.join(siteRoot, tree.relPath) , request = cli.request('post', '/site/file/' + tree.relPath); var r = request({}, function(err, res) { if (err) return cb(err); if (res.statusCode != 200) { // Report failure and skip console.error('%s %s %s', colors.red('✘'), tree.relPath, colors.blackBright(res.statusCode)); return cb(); } console.log('%s %s', colors.green('✔'), tree.relPath); }); var form = r.form(); form.append('file', fs.createReadStream(file)); } } utils.ls(siteRoot, function(err, tree) { if (err) return done(err); _push(tree, done); }); }); };