savory
Version:
A command-line interface for operating your Codefresh account
36 lines (33 loc) • 1.25 kB
JavaScript
const
fp = require('lodash/fp'),
jsYaml = require('js-yaml'),
{ middleware: httpClientMiddleware } = require('../../lib/api_client'),
{
jsonFormatter,
tableFormatter
} = require('../style');
const DEFAULT_API_RESULT_LIMIT = 25;
module.exports = {
command: ["list [id..]", "ls"],
describe: "List your compositions.\nList specific composition(s) by specifying their IDs",
builder: (yargs)=> {
return yargs
.option('output', {
choices: ["summary", "yaml", "json"],
default: "summary",
describe: "Choose a output format for the returned data"
});
},
handler: fp.pipe(httpClientMiddleware, ({ _httpClient, output, id })=> {
(id
? Promise.all(id.map((id)=> _httpClient(`compositions/${id}`)))
: _httpClient(`compositions`))
.then(
fp.pipe(
{ "summary": tableFormatter({ title: ["Id", "Name"], column: ["_id", "name"] }), "json": jsonFormatter, "yaml": jsYaml.safeDump }[output],
console.log
)
)
.catch(fp.pipe(jsonFormatter, console.warn));
})
};