cleverstack-cli

by CleverStack

CleverStack / cleverstack-cli

CLI for CleverStack

201 Stars 34 Forks Last release: over 4 years ago (1.2.10) MIT License 348 Commits 33 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

CleverStack CLI

NPM version GitHub version Dependency Status devDependency Status Code Climate Build Status NPM downloads Coverage Join the chat at https://gitter.im/CleverStack/cleverstack-cli

CleverStack CLI

A command line interface (CLI) for the CleverStack ecosystem.

Installation

npm install cleverstack-cli -g

Prerequisites

cleverstack-cli depends on NPM, GruntJS and Bower and for "npm", "grunt" and "bower" to be located in your

$PATH

npm install bower -g

npm install grunt-cli -g

Table of Contents

Quick Setup Tutorial 1. Initialize a new project 2. Installing a module 3. Removing a module 4. Running tests

Quick Tutorial for Building a New Module 1. generate 2. scaffold 3. new 4. repl

Commands 1. help 2. downgrade 3. generate (g) 4. init 5. list 6. new 7. remove 8. repl 9. scaffold (s) 10. search 11. setup 12. server (serve) 13. test (tests) 14. upgrade

Help & Resources 1. CleverStack Website 2. CleverStack Documentation 3. Official CleverStack Backend Seed 4. Official CleverStack Frontend Seed Running Tests Contributors License

Quick Setup Tutorial

Initialize a new project

Initializing a new project will download and grab CleverStack's angular-seed and node-seed seeds. After initializing the project, cleverstack-cli will automatically install any depedencies that are required through NPM and Bower.

$: clever init my-new-project

You will be asked for database credentials, this is due to the fact that we currently run

grunt db
after the initialization. This will soon change, and your database credentials will only be asked for when you install a module that requires it.

This will create a new directory called my-new-project with two folders: backend and frontend.

$: cd my-new-project && tree -d  -L 1
.
├── backend
└── frontend

2 directories

Installing a module

When installing a module, CleverStack will automatically detect:

  1. If the module exists
  2. If the module is for the frontend or the backend based on it's package.json's keywords.

The command is:

$: clever install 

For a list of modules, visit CleverStack's module page

$: clever install clever-background-tasks

This will install

clever-background-tasks
within the
backend/modules
folder.

Removing a module

When removing a module, CleverStack will:

  1. Check to see which directory that you're in. If it detects both a backend and a frontend directory then it'll try to remove the module from both seeds.
  2. Remain quiet / do nothing if the module does not exist within the module folders (unless there's absolutely nothing to remove).

$: clever remove clever-background-tasks

Running tests

Aliases tests

To ensure that everything is working correctly, you can run tests with:

$: clever test unit

CleverStack will run

grunt test
within each seed.

Running the server

Aliases: serve

$: clever server

Quick Tutorial for Building a New Module

There are three commands to be aware of when building a module:

  1. generate (or g)
  2. scaffold (or s)
  3. new

generate

Generate will create a template of a specific component (controller, services, model, tasks, or tests) within module's name that's residing in your current working directory.

$: tree -d -L 1
.

0 directories

$: clever g model my-new-model

$: tree . -d -L 1
.
└── my-new-model

1 directory

$: cd my-new-model && tree . -L 1
.
└── models

1 directory, 0 files

$: tree ./models
./models
└── MyNewModelModel.js

2 directories, 2 files

scaffold

Scaffolding is similar to generate except it'll generate every component's template for you.

Note: These files will be generated within your current working directory.

$: tree -d -L 1
.

0 directories

$: clever s my-new-module

$: tree . -d -L 1
.
└── my-new-module

$: tree ./my-new-module -L 3
./my-new-module
├── config
│   └── default.json
├── controllers
│   └── MyNewModuleController.js
├── models
│   └── MyNewModuleModel.js
├── schema
│   └── seedData.json
├── services
│   └── MyNewModuleService.js
├── tasks
│   └── MyNewModuleTask.js
└── tests
    ├── integration
    │   └── MyNewModuleTest.js
    └── unit
        └── MyNewModuleTest.js

11 directories, 9 files

new

The

new
command is similar to
scaffold
except it'll create the module within the application's
module
folder.

$: tree ./modules -d -L 1
./modules
└── my-new-module

1 directory

$: tree ./modules/my-new-module -L 3
./modules/my-new-module
├── config
│   └── default.json
├── controllers
│   └── MyNewModuleController.js
├── models
│   └── MyNewModuleModel.js
├── schema
│   └── seedData.json
├── services
│   └── MyNewModuleService.js
├── tasks
│   └── MyNewModuleTask.js
└── tests
    ├── integration
    │   └── MyNewModuleTest.js
    └── unit
        └── MyNewModuleTest.js

11 directories, 9 files

repl

In order to interact with your environment's models directly, simply type in:

$: clever repl

Commands

help

$: clever help
  Usage: clever  [options]

Options:

-h, --help     output usage information
-V, --version  output the version number

Commands:

build - Builds production-ready code for the frontend seed
downgrade - Downgrades a CleverStack implementation
help - Displays this help message
init <project> [backend|frontend] - Initialized a new project
install <modules> - Installs a module within CleverStack
generate <option> <name> - Generates a controller, service, model, etc. individually
list - Lists all of the available CleverStack modules
new <name> - Scaffolds into a specific directory called <name>
remove <modules> - Removes a module within CleverStack
repl - Starts the CleverStack REPL
routes - Displays your project's routes
scaffold <name> - Generates a controller, service, model, etc.
search [query] - Searches for a cleverstack module
setup - Installs NPM &amp; Bower packages for each module and adds modules to bundleDependencies
server - Starts the CleverStack server
test - Runs tests within your CleverStack environment
upgrade - Upgrades a CleverStack implementation

downgrade

Downgrades to the next version (or specified version) of the seed/module (depending on what directory that you're currently in).

Note: This command must run under project's root directory (where frontend and backend are).

$: clever downgrade -h
  Usage: clever-downgrade [options]

Options:

-h, --help     output usage information
-V, --version  output the version number

Examples:

clever downgrade clever-orm
clever downgrade [email protected] [email protected]
clever downgrade backend
clever downgrade frontend

generate (g)

$: clever generate -h
  Usage: clever-generate [options] [command]

Commands:

service <name>           Generates a service as <name> within /Users/richardgustin/Documents/Projects/CleverStack/services
services <names>         Generates services specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/services
controller <name>        Generates a controller as <name> within /Users/richardgustin/Documents/Projects/CleverStack/controllers
controllers <names>      Generates controllers specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/controllers
model <name>             Generates a model as <name> within /Users/richardgustin/Documents/Projects/CleverStack/models
models <names>           Generates models specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/models
task <name>              Generates a task as <name> within /Users/richardgustin/Documents/Projects/CleverStack/tasks
tasks <names>            Generates tasks specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/tasks
view <name>              Generates a view as <name> within /Users/richardgustin/Documents/Projects/CleverStack/views
views <names>            Generates views specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/views
factory <name>           Generates a factory as <name> within /Users/richardgustin/Documents/Projects/CleverStack/factories
factories <names>        Generates factories specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/factories
service <name>           Generates a service as <name> within /Users/richardgustin/Documents/Projects/CleverStack/services
services <names>         Generates services specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/services
directive <name>         Generates a directive as <name> within /Users/richardgustin/Documents/Projects/CleverStack/directives
directives <names>       Generates directives specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/directives
test [options] <name>    Generates a test t as <name> within /Users/richardgustin/Documents/Projects/CleverStack/tests
tests [options] <names>  Generates test specified with <name ...> within /Users/richardgustin/Documents/Projects/CleverStack/tests

Options:

-h, --help     output usage information
-V, --version  output the version number

Example:

clever generate model users
clever generate controller users
clever g controller users
clever g controllers users auth email

init

$: clever init -h
  Usage: clever-init [options] [command]

Commands:

<project>   creates a new project named <project>

Options:

-h, --help             output usage information
-f, --force            delete existing projects in your current directory /Users/richardgustin/Documents/Projects/CleverStack
-v, --verbose          verbose output useful for debugging
-A, --allow-root       allow root for bower
-S, --skip-protractor  skips installing protractor (Frontend only)
-B, --bootstrap        will run `grunt bootstrap build` as part of the setup
-V, --version          output the version number

Examples:

clever init my-project                      install the backend and frontend
clever init my-project clever-auth          with the clever-auth module
clever init my-project backend frontend     verbose way of running "clever init my-project"
clever init my-project frontend             only install the frontend
clever init my-project backend clever-auth  install the clever-auth module after installing the backend and frontend seeds

Installing specific versions:

  clever init my-project [email protected]<version>
  clever init my-project [email protected]<version>

list

Lists all modules available for CleverStack.

$: clever list -h
  Usage: clever-list [options]

Options:

-h, --help     output usage information
-V, --version  output the version number

Example: clever list

new

$: clever new -h
  Usage: clever-new [options] 

Options:

-h, --help       output usage information
-V, --version    output the version number
--no-service     Disables generating a service.
--no-controller  Disables generating a controller.
--no-model       Disables generating a model.
--no-task        Disables generating a task.
--no-test        Disables generating a test.

Example: clever new my_module clever new myModule

remove

Removes a module from the project.

$: clever remove -h
  Usage: clever-remove [options] [modules ...]

Options:

-h, --help     output usage information
-V, --version  output the version number

Examples: clever remove clever-background-tasks clever remove auth clever-background-tasks

repl

Creates a REPL instance within your project's environment. Useful for executing ORM/Model commands.

Note: You must set the

NODE_ENV
environment variable.

$: NODE_ENV=local clever repl
richards-mbp:test-jan-2015 richardgustin$ clever repl
✔  Welcome to CleverStack  using seed version 1.2.0-rc-2
✔  Type .commands or .help for a list of commands

cleverstack::local> .commands

.commands Lists all of the REPL commands .help Alias for .commands .h Alias for .commands .modules List all of the modules within this project .models Lists all models .services Lists all services .exit Exits the CleverStack REPL .quit Alias for .exit .q Alias for .exit .history Show command history

cleverstack::local> .quit

scaffold (s)

$: clever scaffold -h
  Usage: clever-scaffold [options] 

Options:

-h, --help       output usage information
-V, --version    output the version number
--no-service     Disables generating a service.
--no-controller  Disables generating a controller.
--no-model       Disables generating a model.
--no-task        Disables generating a task.
--no-test        Disables generating a test.

Note: Scaffold will generate templates within $PWD If you wish to generate an entire model use clever new

Example: clever scaffold my_component clever scaffold myComponent

search

$: clever search -h
  Usage: clever-search [options]

Options:

-h, --help     output usage information
-V, --version  output the version number

Examples: clever search users clever search users auth email

setup

$: clever setup -h
  Usage: clever-setup [options]

Options:

-h, --help             output usage information
-A, --allow-root       allow root for bower
-S, --skip-protractor  skips installing protractor (Frontend only)
-B, --bootstrap        will run `grunt bootstrap build` as part of the setup
-v, --verbose          verbose output useful for debugging
-V, --version          output the version number

Description:

Installs all NPM and Bower components for each module as well as building bundleDependencies.
This command will also install Protractor unless explicitly skipping.

Examples:

clever setup

server (serve)

$: clever server -h
  Usage: clever-server [options]

Options:

-h, --help         output usage information
-V, --version      output the version number
-x, --host [host]  Set the host for grunt server
-p, --port [port]  Set the port for grunt server

Example: clever server clever --host 10.0.0.0 server clever --port 7777 server

test (tests)

$: clever test -h
  Usage: clever-test [options] [command]

Commands:

e2e                    Runs e2e tests
unit                   Runs unit tests
coverage               Generates unit test coverage reports.

Options:

-h, --help     output usage information
-V, --version  output the version number

Examples:

clever test coverage
clever test e2e
clever test unit

upgrade

$: clever upgrade -h
  Usage: clever-upgrade [options]

Options:

-h, --help     output usage information
-V, --version  output the version number

Examples:

clever upgrade clever-orm
clever upgrade [email protected] [email protected]
clever upgrade backend
clever upgrade frontend

Help & Resources

CleverStack Website

http://cleverstack.io

CleverStack Documentation

Online Documentation which can provide support for install, configurations and troubleshooting.

https://github.com/CleverStack/cleverstack-cli/wiki

Official CleverStack Backend Seed

node-seed

Official CleverStack Frontend Seed

angular-seed

Communication

Running Tests

To run the test suite, first invoke the following command within the repo, installing the development dependencies:

$ npm install

Then run the tests:

$ make test

Contributors

https://github.com/CleverStack/cleverstack-cli/graphs/contributors

License

See our LICENSE

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.