New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

panko-cli

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

panko-cli

A CLI-based project manager that reads from a list of separate profiles and allows various tasks to be completed.

latest
npmnpm
Version
0.6.17
Version published
Maintainers
1
Created
Source

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:

OptionDescription
typeRequired: The type of source to use. Determines which plugin to run.
fileName of the profile file to look for. Default: profile.json
ttlAmount 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

# 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.

CommandDescription
listList all projects
sourcesList all sources in .pankorc
updateUpdate the project cache
helpTODO: 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:

OptionDescription
--source or -aSet which source's projects are included. Default: all sources
--name or -nSet 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

FAQs

Package last updated on 14 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts