Horsepower Command Line Tool
- Installation
- Project Management
- Package Management
- Making Components
- Server Management
Installation
To install the command line tool run an npm install
npm install -g @horsepower/cli
Once installed you can create projects and project files.
New Project
New projects are created by going to the directory that you want to create a new project within. The command will then create a new directory and install everything into that directory.
horsepower new <project-name>
The following steps are taken:
-
git clone
the bare bones project from github - Install the node dependencies
- Start a test server
- Opens
http://localhost:5000
within a browser to make sure everything works
List Commands
This allows for seeing all of the commands that are usable at the current path. This includes builtin commands and commands that are listed in a projects app/commands
directory.
horsepower list
Add Package
Adds a supported @horsepower
package to the current project.
horsepower add <package-name>
The following steps are taken:
- Check the registry to make sure the package is a horsepower package (
@horsepower/<package-name>
) - If the package exists, install it
npm i -s @horsepower/<package-name>
Remove Package
Removes a supported @horsepower
package from the current project.
horsepower remove <package-name>
The following steps are taken:
- Check the registry to make sure the package is a horsepower package (
@horsepower/<package-name>
) - If the package exists, remove it
npm rm -s @horsepower/<package-name>
List Packages
Displays a list of packages that can be installed via package:add
.
horsepower package:list
Make Controller
Make controller can create 3 different types of controllers:
- A basic controller (default)
- An API controller
- A Resource controller
Creates a basic controller containing only a main
endpoint. This is the default action.
horsepower make:controller <controller-name>
Creates an API controller containing only API endpoints
horsepower make:controller <controller-name> --api
Creates a Resource controller containing all resource endpoints
horsepower make:controller <controller-name> --resource
Make Middleware
Make Middleware will make middleware that can then be hooked into within your routes.
horsepower make:middleware <middleware-name>
Start Server
Starts an instance of a horsepower server application. This command will not hang the terminal and will start the server in the background. A pid
will be written to the horsepower.json
file in order to stop the service upon server:stop
.
The server will watch for file changes in: app
, config
and routes
. When a file changes the server will restart with the new changes.
Note: Calling server:start
repeatedly on the same project will shutdown the current running server if one started successfully and start a new one thus removing the need for a server:restart
command.
Note: If the server fails to start a new attempt will be taken to start the server. If the restart fails five times a restart attempt will not be taken a sixth time.
# Starts the server in the current directory
horsepower server:start
# Start the server in the specified directory
horsepower server:start /path/to/server/root
Stop Server
Stops an instance of a horsepower server application. When the server is stopped, the pid
will be removed from the horsepower.json
file.
# Stops the server in the current directory
horsepower server:stop
# Stops the server in the specified directory
horsepower server:stop /path/to/server/root
Server Logging
Displays the tail of the server log file at storage/framework/logs/server.log
. This file will be created upon server:start
, and truncated upon server:stop
.
Note: Logging will not be logged to this file when in production mode.
# Shows the server log in the current directory
horsepower server:log
# Shows the server log in the specified directory
horsepower server:log /path/to/server/root
Server List
Displays all the servers that are currently running.
horsepower server:list