panko
A CLI-based project manager that reads from a list of separate profiles and allows various tasks to be completed.
Setup
Installation
Install panko
globally with Yarn.
yarn global add panko-cli
Updating
Update with Yarn.
yarn global upgrade panko-cli
Quick Guide
-
Create a
.pankorc
file -
Install the necessary source plugins
yarn global add panko-source-github-user -
Update your project cache
panko update -
panko is ready to do cool things, but you'll need some command plugins to do some really cool things. Read on.
.pankorc
Creating your Your .pankorc
is a JSON file that determines how panko functions.
Example .pankorc
:
Usage
panko is a simple tool to route project metadata, such as server addresses and GitHub repository names, to panko-aware commands. It provides a method to gather project metadata from different sources. It allows for filtering which projects are passed to a command for processing.
Project Profile Files
panko gathers project information through profile files. panko source plugins
will typically look for a profile.json
file in your project, however this is
configurable in your .pankorc
.
The following is an example project profile.json
file:
name
is the only required attribute for now. As commands are created, these
requirements may change.
Sources
Source plugins "source" project information. Sources can gather projects, for
example, from the filesystem, GitHub repositories, or even right in the
.pankorc
file.
Sources are defined under the sources
key in .pankorc
. Each source has a
key and a map of options. At minimum, each source must define it's type in its
options so panko knows which plugin to run.
The following options are availble for all sources:
Option | Description |
---|---|
type |
Required: The type of source to use. Determines which plugin to run. |
file |
Name of the profile file to look for. Default: profile.json |
ttl |
Amount of time in milliseconds before panko suggests refreshing the source cache. Default: 1209600000 (14 days) |
Additional options are dependent on the source plugin.
List of Source Plugins
panko-source-inline
: Write a profile file directly in.pankorc
panko-source-filesystem
: TODO: Point to a directory of projects in the filesystempanko-source-github-user
panko-source-github-organization
panko-source-gitlab-group
Commands
Command plugins perform tasks on a set projects. panko provides functionality to determine the set of projects passed to a command.
Examples
# Run the "list" command with all projects from the "github" source panko list --source github # Run the "list" command with all projects that have the name "personal-site" panko list --name personal-site # Run the "list" command with all projects from the "github" source that have # the name "personal-site" panko list --source github --name personal-site
Built-In Commands
panko only includes a minimal set of commands to gather project metadata and a system to call external subcommands.
Command | Description |
---|---|
list |
List all projects |
sources |
List all sources in .pankorc |
update |
Update the project cache |
help |
TODO: Print help message |
Other functionality, such as listing server statuses or getting page screenshots, are added by installing command plugins. See List of Command Plugins
All commands provide at least the following options:
Option | Description |
---|---|
--source or -a |
Set which source's projects are included. Default: all sources |
--name or -n |
Set which project by name is included. Default: all names |
Both options can be combined for instances where a project with the same name, but different metadata, exists in multiple sources.
List of Command Plugins
panko-command-status
: List server statuses and ping timespanko-command-docs
: TODO: Open documentation for projectpanko-command-screenshot
: Take screenshots of websites