From b1ee4bdc09defc0e17e84847b0a16abc5db41eca Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 27 Oct 2015 12:27:57 +0100 Subject: [PATCH] Standard coding style. --- packages/xo-cli/config.js | 64 ++++---- packages/xo-cli/index.js | 309 +++++++++++++++++------------------ packages/xo-cli/package.json | 7 + 3 files changed, 190 insertions(+), 190 deletions(-) diff --git a/packages/xo-cli/config.js b/packages/xo-cli/config.js index d76587c78..3a75ba42b 100644 --- a/packages/xo-cli/config.js +++ b/packages/xo-cli/config.js @@ -1,54 +1,54 @@ -'use strict'; +'use strict' -//==================================================================== +// =================================================================== -var promisify = require('bluebird').promisify; +var promisify = require('bluebird').promisify -var readFile = promisify(require('fs').readFile); -var writeFile = promisify(require('fs').writeFile); +var readFile = promisify(require('fs').readFile) +var writeFile = promisify(require('fs').writeFile) -var assign = require('lodash.assign'); -var l33t = require('l33teral'); -var mkdirp = promisify(require('mkdirp')); -var xdgBasedir = require('xdg-basedir'); +var assign = require('lodash.assign') +var l33t = require('l33teral') +var mkdirp = promisify(require('mkdirp')) +var xdgBasedir = require('xdg-basedir') -//==================================================================== +// =================================================================== -var configPath = xdgBasedir.config +'/xo-cli'; -var configFile = configPath +'/config.json'; +var configPath = xdgBasedir.config + '/xo-cli' +var configFile = configPath + '/config.json' -//==================================================================== +// =================================================================== var load = exports.load = function () { return readFile(configFile).then(JSON.parse).catch(function () { - return {}; - }); -}; + return {} + }) +} exports.get = function (path) { return load().then(function (config) { - return l33t(config).tap(path); - }); -}; + return l33t(config).tap(path) + }) +} var save = exports.save = function (config) { return mkdirp(configPath).then(function () { - return writeFile(configFile, JSON.stringify(config)); - }); -}; + return writeFile(configFile, JSON.stringify(config)) + }) +} exports.set = function (data) { return load().then(function (config) { - return save(assign(config, data)); - }); -}; + return save(assign(config, data)) + }) +} exports.unset = function (paths) { return load().then(function (config) { - var l33tConfig = l33t(config); - [].concat(paths).forEach(function (path) { - l33tConfig.purge(path, true); - }); - return save(config); - }); -}; + var l33tConfig = l33t(config) + ;[].concat(paths).forEach(function (path) { + l33tConfig.purge(path, true) + }) + return save(config) + }) +} diff --git a/packages/xo-cli/index.js b/packages/xo-cli/index.js index 09d8767b2..7c38e4b6b 100755 --- a/packages/xo-cli/index.js +++ b/packages/xo-cli/index.js @@ -1,114 +1,109 @@ #!/usr/bin/env node -'use strict'; +'use strict' -//==================================================================== +var Bluebird = require('bluebird') +Bluebird.longStackTraces() +var promisify = Bluebird.promisify -var Bluebird = require('bluebird'); -Bluebird.longStackTraces(); -var promisify = Bluebird.promisify; +var createReadStream = require('fs').createReadStream +var createWriteStream = require('fs').createWriteStream +var resolveUrl = require('url').resolve +var stat = promisify(require('fs').stat) -var createReadStream = require('fs').createReadStream; -var createWriteStream = require('fs').createWriteStream; -var resolveUrl = require('url').resolve; -var stat = promisify(require('fs').stat); +var chalk = require('chalk') +var eventToPromise = require('event-to-promise') +var filter = require('lodash.filter') +var forEach = require('lodash.foreach') +var getKeys = require('lodash.keys') +var got = require('got') +var humanFormat = require('human-format') +var isObject = require('lodash.isobject') +var multiline = require('multiline') +var nicePipe = require('nice-pipe') +var pairs = require('lodash.pairs') +var prettyMs = require('pretty-ms') +var progressStream = require('progress-stream') +var sent = promisify(require('sent')) +var Xo = require('xo-lib') -var chalk = require('chalk'); -var eventToPromise = require('event-to-promise'); -var filter = require('lodash.filter'); -var forEach = require('lodash.foreach'); -var getKeys = require('lodash.keys'); -var got = require('got'); -var humanFormat = require('human-format'); -var isObject = require('lodash.isobject'); -var multiline = require('multiline'); -var nicePipe = require('nice-pipe'); -var pairs = require('lodash.pairs'); -var prettyMs = require('pretty-ms'); -var progressStream = require('progress-stream'); -var sent = promisify(require('sent')); -var Xo = require('xo-lib'); +// ------------------------------------------------------------------- -//-------------------------------------------------------------------- +var config = require('./config') -var config = require('./config'); +// =================================================================== -//==================================================================== - -function connect() { +function connect () { return config.load().bind({}).then(function (config) { - if (!config.server) - { - throw 'no server to connect to!'; + if (!config.server) { + throw new Error('no server to connect to!') } - if (!config.token) - { - throw 'no token available'; + if (!config.token) { + throw new Error('no token available') } - var xo = new Xo(config.server); + var xo = new Xo(config.server) return xo.call('session.signInWithToken', { - token: config.token, - }).return(xo); - }); + token: config.token + }).return(xo) + }) } function parseParameters (args) { - var params = {}; + var params = {} forEach(args, function (arg) { - var matches; + var matches if (!(matches = arg.match(PARAM_RE))) { - throw 'invalid arg: '+arg; + throw new Error('invalid arg: ' + arg) } - var name = matches[1]; - var value = matches[2]; + var name = matches[1] + var value = matches[2] if (name === '@') { - params['@'] = value; - return; + params['@'] = value + return } if (value === 'true') { - value = true; - } - else if (value === 'false') { - value = false; + value = true + } else if (value === 'false') { + value = false } - params[name] = value; - }); + params[name] = value + }) return params } -function printProgress(progress) { +function printProgress (progress) { if (progress.length) { console.warn('%s% of %s @ %s/s - ETA %s', Math.round(progress.percentage), humanFormat(progress.length), humanFormat(progress.speed), prettyMs(progress.eta * 1e3) - ); + ) } else { console.warn('%s @ %s/s', humanFormat(progress.transferred), humanFormat(progress.speed) - ); + ) } } -function wrap(val) { - return function wrappedValue() { - return val; - }; +function wrap (val) { + return function wrappedValue () { + return val + } } -//==================================================================== +// =================================================================== var help = wrap((function (pkg) { - return multiline.stripIndent(function () {/* + return multiline.stripIndent(function () { /* Usage: $name --register [] [] [] @@ -126,124 +121,122 @@ var help = wrap((function (pkg) { $name v$version */}).replace(/<([^>]+)>|\$(\w+)/g, function (_, arg, key) { if (arg) { - return '<'+ chalk.yellow(arg) +'>'; + return '<' + chalk.yellow(arg) + '>' } - if ('name' === key) { - return chalk.bold(pkg[key]); + if (key === 'name') { + return chalk.bold(pkg[key]) } - return pkg[key]; - }); -})(require('./package'))); + return pkg[key] + }) +})(require('./package'))) -//-------------------------------------------------------------------- +// ------------------------------------------------------------------- -function main(args) { - if (!args || !args.length || '-h' === args[0]) { - return help(); +function main (args) { + if (!args || !args.length || args[0] === '-h') { + return help() } var fnName = args[0].replace(/^--|-\w/g, function (match) { - if (match === '--') - { - return ''; + if (match === '--') { + return '' } - return match[1].toUpperCase(); - }); + return match[1].toUpperCase() + }) if (fnName in exports) { - return exports[fnName](args.slice(1)); + return exports[fnName](args.slice(1)) } - return exports.call(args); + return exports.call(args) } -exports = module.exports = main; +exports = module.exports = main -//-------------------------------------------------------------------- +// ------------------------------------------------------------------- -exports.help = help; +exports.help = help -function register(args) { - var xo; +function register (args) { + var xo return Bluebird.try(function () { - xo = new Xo(args[0]); + xo = new Xo(args[0]) return xo.call('session.signInWithPassword', { email: args[1], - password: args[2], - }); + password: args[2] + }) }).then(function (user) { - console.log('Successfully logged with', user.email); + console.log('Successfully logged with', user.email) - return xo.call('token.create'); + return xo.call('token.create') }).then(function (token) { return config.set({ server: xo._url, - token: token, - }); - }); + token: token + }) + }) } -exports.register = register; +exports.register = register -function unregister() { +function unregister () { return config.unset([ 'server', - 'token', - ]); + 'token' + ]) } -exports.unregister = unregister; +exports.unregister = unregister -function listCommands(args) { - return connect().then(function getMethodsInfo(xo) { - return xo.call('system.getMethodsInfo'); - }).then(function formatMethodsInfo(methods) { - if (args.indexOf('--json') !== -1) - { - return methods; +function listCommands (args) { + return connect().then(function getMethodsInfo (xo) { + return xo.call('system.getMethodsInfo') + }).then(function formatMethodsInfo (methods) { + if (args.indexOf('--json') !== -1) { + return methods } - methods = pairs(methods); + methods = pairs(methods) methods.sort(function (a, b) { - a = a[0]; - b = b[0]; + a = a[0] + b = b[0] if (a < b) { - return -1; + return -1 } - return +(a > b); - }); + return +(a > b) + }) - var str = []; + var str = [] forEach(methods, function (method) { - var name = method[0]; - var info = method[1]; - str.push(chalk.bold.blue(name)); + var name = method[0] + var info = method[1] + str.push(chalk.bold.blue(name)) forEach(info.params || [], function (info, name) { - str.push(' '); + str.push(' ') if (info.optional) { - str.push('['); + str.push('[') } - str.push(name, '=<', info.type || 'unknown', '>'); + str.push(name, '=<', info.type || 'unknown', '>') if (info.optional) { - str.push(']'); + str.push(']') } - }); - str.push('\n'); + }) + str.push('\n') if (info.description) { - str.push(' ', info.description, '\n'); + str.push(' ', info.description, '\n') } - }); - return str.join(''); - }); + }) + return str.join('') + }) } -exports.listCommands = listCommands; +exports.listCommands = listCommands -function listObjects(args) { +function listObjects (args) { var sieve = args.length ? parseParameters(args) : null - return connect().then(function getXoObjects(xo) { + return connect().then(function getXoObjects (xo) { return xo.call('xo.getAllObjects') }).then(function filterObjects (objects) { return filter(objects, sieve) @@ -251,72 +244,72 @@ function listObjects(args) { } exports.listObjects = listObjects -var PARAM_RE = /^([^=]+)=(.*)$/; -function call(args) { +var PARAM_RE = /^([^=]+)=(.*)$/ +function call (args) { if (!args.length) { - throw 'missing command name'; + throw new Error('missing command name') } - var method = args.shift(); - var params = parseParameters(args); + var method = args.shift() + var params = parseParameters(args) - var file = params['@']; - delete params['@']; + var file = params['@'] + delete params['@'] - var baseUrl; + var baseUrl return connect().then(function (xo) { - baseUrl = xo._url; - return xo.call(method, params); - }).then(function handleResult(result) { - var keys, key, url; - if (( + baseUrl = xo._url + return xo.call(method, params) + }).then(function handleResult (result) { + var keys, key, url + if ( isObject(result) && (keys = getKeys(result)).length === 1 - )) { - key = keys[0]; + ) { + key = keys[0] if (key === '$getFrom') { - url = resolveUrl(baseUrl, result[key]); - var output = createWriteStream(file); + url = resolveUrl(baseUrl, result[key]) + var output = createWriteStream(file) return eventToPromise(nicePipe([ got(url), progressStream({ time: 1e3 }, printProgress), - output, - ]), 'finish'); + output + ]), 'finish') } if (key === '$sendTo') { - url = resolveUrl(baseUrl, result[key]); + url = resolveUrl(baseUrl, result[key]) return stat(file).then(function (stats) { - var length = stats.size; + var length = stats.size var input = nicePipe([ createReadStream(file), progressStream({ length: length, - time: 1e3, - }, printProgress), - ]); + time: 1e3 + }, printProgress) + ]) return sent(url, input, { headers: { - 'content-length': length, + 'content-length': length }, method: 'POST' - }).get(0); - }); + }).get(0) + }) } } - return result; - }); + return result + }) } -exports.call = call; +exports.call = call -//==================================================================== +// =================================================================== if (!module.parent) { - require('exec-promise')(exports); + require('exec-promise')(exports) } diff --git a/packages/xo-cli/package.json b/packages/xo-cli/package.json index 41ef2e324..b780aecd9 100644 --- a/packages/xo-cli/package.json +++ b/packages/xo-cli/package.json @@ -45,5 +45,12 @@ "sent": "^1.1.0", "xdg-basedir": "^1.0.0", "xo-lib": "^0.2.0" + }, + "devDependencies": { + "standard": "^5.3.1" + }, + "scripts": { + "lint": "standard", + "posttest": "npm run lint" } }