pubnub-cli-vittorio v0.2.0
BLOCKS CLI
Install
npm install -g pubnub-cliHelp
node pubnub-cli -hUsage
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 loginOutput:
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 initOutput:
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 145183Pull
Pulls block information from server and writes to block.json.
Input
pubnub-cli pullOutput
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 145183Block.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 pushOutput
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 145183Sample 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 startOutput
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 stopOutput
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 testOutput
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: ---------------------------------------7 years ago