pubnub-cli

0.2.0 • Public • Published

BLOCKS CLI

Install

npm install -g pubnub-cli

Help

node pubnub-cli -h

Usage

Usage:
  pubnub-cli [OPTIONS] <command> [ARGS]
 
Options:
  -b, --block NUMBER     Block ID
  -k, --key NUMBER       Subscribe Key ID
  -f, --file PATH        A block file
  -m, --email STRING     Email
  -n, --insert INSERT    Insert Mode. Create new blocks and skip prompts.
  -a, --account NUMBER   Account ID
  -p, --password STRING  Password
      --debug            Show debug information
  -h, --help             Display help and usage details
 
Commands:
  init, log, login, logout, pull, push, start, stop, watch, test
  • Init - Download the remote PubNub function and event handlers locally
  • Log - Log the event handler output to console
  • Login - Authorize with PubNub and write session to disk
  • Logout - Remove local session from disk
  • Pull - Download remote event handlers and overwrite file
  • Push - Upload remote event handlers and overwrite
  • Start - Start the remote PubNub Function
  • Stop - Stop the remote PubNub Funciton
  • Watch - Watch the local directory and push event handlers when changes are detected
  • Test - Run event handler unit tests

Login

Authorizes this computer with PubNub API.

Input:

pubnub-cli login

Output:

pubnub-cli login
? PubNub Email: ian@pubnub.com
? PubNub Password: *************
Logging In... Done!
OK: ---------------------------------------
OK: Logged In!
OK: Deluxe!
OK: ---------------------------------------

Creates a file ~/.pubnub-cli with PubNub session properties:

{
    "created": 1463775328,
    "expires": 1467587119,
    "modified": 1464995119,
    "role": "user",
    "status": 1,
    "storage": "{}",
    "token": "38583023-a36a-4a03-97f6-c838bd9f7aab",
    "user": {
    },
    "user_id": 198072,
    "user_roles": {
    }
}

This file is used for every request thereafter.

Init

Writes a block.json file. Use selects key and block (or creates a new block). Block information is pulled from server and persisted into file.

Note the -f specifies the directory of the future block.json file. See "Pull" below for more info on block.json.

Input:

pubnub-cli init

Output:

INFO: Reading session from /Users/ian/.pubnub-cli
OK: Working as ian@meetjennings.com
OK: Which app are you working on?
? Select a key eon-demos
OK: Which block are you working on?
? Select a block Email Sendgrid Block
OK: ---------------------------------------
OK: New block.json written to disk.
OK: Deluxe!
OK: ---------------------------------------
OK: Use this handy command next time:
OK: node pubnub-cli init -b 853 -k 145183

Pull

Pulls block information from server and writes to block.json.

Input

pubnub-cli pull

Output

INFO: Reading session from /Users/ian/.pubnub-cli
OK: Working as ian@meetjennings.com
OK: Working on block Email Sendgrid Block
OK: ---------------------------------------
OK: Local block.json updated with remote data.
OK: Deluxe!
OK: ---------------------------------------
OK: Use this handy command next time:
OK: node pubnub-cli pull -b 853 -k 145183

Block.json looks like:

{
    "_key_id": 145183,
    "_id": 40,
    "name": "name this block",
    "description": "describe this block",
    "event_handlers": [
        {
            "_id": 69,
            "name": "Wohoo!",
            "event": "js-before-publish",
            "channels": "input"
        },
        {
            "_id": 107,
            "name": "kjklhlkjh",
            "event": "js-before-publish",
            "channels": "input"
        }
    ]
}

The properties _key_id and _id represent the key id and block id respectively. These should not be modified.

Push

Updates server with information provided in block.json. Upload code by specifying a file within the event handler object. See below for example.

Input

pubnub-cli push

Output

OK: Working as ian@meetjennings.com
OK: Working on block Email Sendgrid Block
OK: ---------------------------------------
OK: Block pushed
OK: Deluxe!
OK: ---------------------------------------
OK: Use this handy command next time:
OK: node pubnub-cli push -b 853 -k 145183

Sample block.json for uploading event handlers directly:

{
    "_key_id": 145183,
    "_id": 40,
    "name": "name this block",
    "description": "describe this block",
    "event_handlers": [
        {
            "_id": 69,
            "name": "a handler",
            "event": "js-before-publish",
            "channels": "input",
            "file": "/after-presence/sample_handler.js"
        },
        {
            "_id": 107,
            "name": "a handler",
            "event": "js-before-publish",
            "channels": "input",
            "file": "/before-publish/sample_handler.js"
        },
        {
            "_id": 118,
            "name": "a handler",
            "event": "js-after-publish",
            "channels": "input",
            "file": "/after-publish/sample_handler.js"
        }
    ]
}

Start

Starts running a block.

Input

pubnub-cli start

Output

OK: Working as ian@meetjennings.com
OK: Working on block Email Sendgrid Block
OK: Sending start command
Starting Block...
OK: ---------------------------------------
OK: Block started
OK: Deluxe!
OK: ---------------------------------------

Stop

Stops a running block.

Input

pubnub-cli stop

Output

NFO: Reading session from /Users/ian/.pubnub-cli
OK: Working as ian@meetjennings.com
OK: Working on block Email Sendgrid Block
OK: ---------------------------------------
OK: Block stopped
OK: Deluxe!
OK: ---------------------------------------

Test

Runs unit tests for the event handlers with pubnub-functions-mock package in the local environment.

pubnub-cli test

Output

OK: Working with prod environment at https://admin.pubnub.com
OK: Working on block CICD Example
 
  #eventhandler
    ✓ creates event handler of type Function
 
  1 passing (9ms)
 
  #endpoint
    ✓ creates endpoint event handler of type Function
 
  1 passing (9ms)
 
OK: ---------------------------------------
OK: Unit tests completed.
OK: Deluxe!
OK: ---------------------------------------

Readme

Keywords

none

Package Sidebar

Install

npm i pubnub-cli

Weekly Downloads

1

Version

0.2.0

License

MIT

Unpacked Size

65.7 kB

Total Files

14

Last publish

Collaborators

  • stephenlb
  • pubnub-admin
  • ianjennings
  • madisonsmith
  • davidnub
  • client-engineering-bot