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
See Creating your .pankorc
{
"sources": {
"my-gh-account": {
"type": "github-user",
"handle": "angeloashmore",
"token": "supersecretpersonalaccesstoken",
"branch": "development"
}
}
}
-
Install the necessary source plugins
See List of 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.
Creating your .pankorc
Your .pankorc is a JSON file that determines how panko functions.
Example .pankorc:
{
"sources": {
"my-gh-account": {
"type": "github-user",
"handle": "angeloashmore",
"token": "supersecretpersonalaccesstoken",
"branch": "development"
}
}
}
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": "angeloashmore.github.io",
"repo": "git@github.com:angeloashmore/angeloashmore.github.io.git",
"arch": {
"name": "middleman",
"version": "^4.2"
}
}
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:
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
Commands
Command plugins perform tasks on a set projects. panko provides functionality
to determine the set of projects passed to a command.
Examples
panko list --source github
panko list --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.
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:
--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