Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

circle-cli-util

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

circle-cli-util

Set of helpful CLI utilities

  • 1.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

circle-cli-util

Circle CI npm version License Inline docs

Set of helpful CLI utilities

Installation

npm install circle-cli-util --save

Action

let cli      = require('circle-cli-util');
let promise  = circle.projects(project).info();
let projects = yield cli.action('getting project', promise);
console.log(`project name: ${project.name}`);

// getting project... done
// project name: project

Note: to use yield you need to wrap this in a co block.

Prompt

Callback style

let cli = require('circle-cli-util');
cli.prompt('email', {}, function (_, email) {
  console.log(`your email is: ${email}`);
});

Promise style

let cli = require('circle-cli-util');
cli.prompt('email', {}).then(function (email) {
  console.log(`your email is: ${email}`);
});

Generator style (must be wrapped in a co block)

let cli   = require('circle-cli-util');
let email = yield cli.prompt('email', {});
console.log(`your email is: ${email}`);

cli.prompt options

cli.prompt('email', {
  mask: true, // mask input field after submitting
  hide: true // mask characters while entering
});

Confirm App

Supports the same async styles as prompt(). Errors if not confirmed.

Basic

let cli = require('circle-cli-util');
yield cli.confirmApp('appname', context.flags.confirm);

// !     WARNING: Destructive Action
// !     This command will affect the app appname
// !     To proceed, type appname or re-run this command with --confirm appname

> appname

Custom message

let cli = require('circle-cli-util');
yield cli.confirmApp('appname', context.flags.confirm, 'foo');

// !     foo
// !     To proceed, type appname or re-run this command with --confirm appname

> appname

Errors

let cli = require('circle-cli-util');
cli.error("App not found");
// !    App not found

Warnings

let cli = require('circle-cli-util');
cli.warn("App not found");
// !    App not found

Dates

let cli = require('circle-cli-util');
let d   = new Date();
console.log(cli.formatDate(d));
// 2001-01-01T08:00:00.000Z

Hush

Use hush for verbose logging when CIRCLE_DEBUG=1.

let cli = require('circle-cli-util');
cli.hush('foo');
// only prints if CIRCLE_DEBUG is set

Debug

Pretty print an object.

let cli = require('circle-cli-util');
cli.debug({foo: [1,2,3]});
// { foo: [ 1, 2, 3 ] }

Stylized output

Pretty print a header and hash

let cli = require('circle-cli-util');
cli.styledHeader("MyApp");
cli.styledHash({name: "myapp", collaborators: ["user1@example.com", "user2@example.com"]});

Produces

=== MyApp
Collaborators: user1@example.com
               user1@example.com
Name:          myapp

Table

cli.table([
  {app: 'first-app',  language: 'ruby', dyno_count: 3},
  {app: 'second-app', language: 'node', dyno_count: 2},
], {
  columns: [
    {key: 'app'},
    {key: 'dyno_count', label: 'Dyno Count'},
    {key: 'language', format: language => cli.color.red(language)},
  ]
});

Produces:

app         Dyno Count  language
──────────  ──────────  ────────
first-app   3           ruby
second-app  2           node

Mocking

Mock stdout and stderr by using cli.log() and cli.error().

let cli = require('circle-cli-util');
cli.log('message 1'); // prints 'message 1'
cli.mockConsole();
cli.log('message 2'); // prints nothing
cli.stdout.should.eq('message 2\n');

Command

Used for initializing a plugin command.

It expects you to return a promise chain. This is usually done with co.

let cli     = require('circle-cli-util');
let co      = require('co');
let request = require('request');
module.exports.commands = [
  {
    topic: 'apps',
    command: 'info',
    needsAuth: true,
    needsApp: true,
    run: cli.command(function (context) {
      return co(function* () {
        let projects = yield request.get('https://circleci.com/api/v1/projects');
        console.dir(app);
      });
    })
  }
];

With options:

let cli = require('circle-cli-util');
let co  = require('co');
module.exports.commands = [
  {
    topic: 'apps',
    command: 'info',
    needsAuth: true,
    needsApp: true,
    run: cli.command(
      {preauth: true},
      function (context) {
        return co(function* () {
          let projects = yield request.get('https://circleci.com/api/v1/projects');
          console.dir(app);
        });
      }
    )
  }
];

Tests

npm install
npm test

License

ISC

FAQs

Package last updated on 16 Jan 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc