/cables-cli

cables command line exporter

Primary LanguageJavaScript

cables-cli

Command line tool to export and download cables patches from the command line

             C   A   B   L   E   S   >>>  ___:_ _
       _ _:_______________ _____________ /   |\   _ _______
          |  _           /\\_           \    |\\.  _)     /\       ______         
    _____ | (/)        _/\\\(_______    /    |\\| /    __/\\\     /     /\    
   /   _/\_      _    /_\\\/_\\\\ _/   /     |\\|/     \_\\\/___ /     /\\\ 
  /   /_\\|_     |\     \\(    /\ \   /_    _:\\/__ /\_/       /_\   _/_\\/___
_/   /(     \    |_\     \__  /_\\_)    \         (_          /   \          /\
\           _\   \___     _/             \         /         /     \_       /\\\
 \_________(    _|\\\\     \_ ___________/   _    /_________/       /      /\\\/
  \\\\\\\\|_____)\\\        |\\\\\/         (/)  /\\\\\\\/                /_\\/
   \\\\\\\\\\\\\\\\\\_______:\\.\/______________/\\\\\\\\\_________________(\\ 
 _|.._     \\\\\\\)  \\\\\\\\\\| \\\\\\\\\\\\\\\\\\\/     \\\\\\\\\\\\\\\\\\\\
(_|||_)               \\\\\\\\\|  \\\\\\\\\\\\\\\\\/       \\\\\\\\\\\\\\\\\\( 
 ---|-->> 

Installation

Run npm install -g @cables/cables.
Create an API key on cables.gl/settings —> navigate to API key —> press Generate. When you first start the tool it will show a prompt for the API key. Once entered your API key will be stored in ~/.cablesrc.

Run

Export

To export and download a cables patch into a specific directory run:

cables --export [CABLES PATCH ID] -d [DESTINATION]

You can find the patch ID by opening your patch in the cables editor – the last part of the URL is the patch ID, e.g.:

https://cables.gl/ui/#/project/5a7daa8b285c9aca0982bba2> 5a7daa8b285c9aca0982bba2 is the patch ID

Example:

cables --export 5a7daa8b285c9aca0982bba2 -d 'my-patch'

Please note: Running the command will overwrite everything in the my-patch-folder.

Arguments

  • -e / --export [PATCH ID]: Export patch
  • -d / --destination [DESTINATION]: Folder to download the patch to, can either be absolute or relative
  • -i / --no-index : Removes the index.html file when set
  • -x / --no-extract : do not extract the downloaded zip file
  • -j / --json-filename [JSON FILENAME] : Define the filename of the patch json file
  • -c / --combine-js : combine javascript and json into a single patch.js
  • -o / --old-browsers: load a version made compatible with older browsers using babel
  • -a / --assets <auto|all|none>: export assets of patch, defaults to "auto"
  • -b / --skip-backups: do not include backup files in patch export

Deploy to netlify

Create an account on netlify, create a site by uploading a folder with a simple index.html. Go to the new site's settings and copy the "API ID" (this is your [SITE ID]). Then run the following commands:

If you do this for the first time cables-cli will ask you for your netlify-api-key/personal access token, create and copy one at/from "User Settings > Applications".

Deploy the current directory to netlify:

cables --deploy netlify -d [SITE ID]

Deploy any directory to netlify (useful with webpack buildir or cables --export -d)

cables --deploy netlify -d [SITE ID] -s build/

Please note: Running the command will overwrite everything in the netlify site. They version their deploys, though.

Arguments

  • --deploy netlify: Deploy patch to netlify
  • -d / --destination [SITE ID]: Netlify-Site API ID to upload the files to
  • -s / --src [DIRECTORY]: which directory to send to netlify, defaults to current working directory

Use as a module

Install as dependency:

npm install --save @cables/cables

Export:

cables.export(options, onFinished, onError);

Simple Export Example:

var cables = require('@cables/cables');

cables.export({
  patchId: '5a4ea356429259dd579a0fea',
  destination: 'patch' 
}, onFinished, onError);

function onFinished() {
  console.log('Export finished!');
}

function onError(err) {
  console.log('There was an error exporting your patch :/');
}

Simple Deploy Example:

var cables = require('@cables/cables');

cables.netlify({
  destination: 'YOURNETLIFYSITEID' 
}, onFinished, onError);

function onFinished() {
  console.log('Deploy finished!');
}

function onError(err) {
  console.log('There was an error deploying your patch :/');
}

Advanced Export Example:

var cables = require('@cables/cables');

cables.export({
  patchId: '5a4ea356429259dd579a0fea',
  destination: 'patch',
  noIndex: true,
  jsonFilename: 'my-patch' /* patch will be stored as my-patch.json */
}, onFinished, onError);

function onFinished(filename) {
  console.log('Export finished: '+filename);
}

function onError(err) {
  console.log('There was an error exporting your patch :/');
}

Use in package.json:

{
  "scripts": {
      "patchup": "cables -c -i -d 'public' -e 5a4ea356429259dd579a0fea",
      "deploy": "cables --deploy netlify -d [SITE ID] -s public/"
  }
}

The project contains an example-package.json with patchup and deploy as predefined scripts.

Further Infos

For more infos on the cables API see cables API docs.