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: ---------------------------------------

    Keywords

    none

    Install

    npm i pubnub-cli

    DownloadsWeekly Downloads

    83

    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