Skip to main content

command line app for running configurable shell commands

Project description

plz-cmd

Build Status Coverage Status

A shell command to execute standard/repeatable commands in a git repo

Installation

Install plz at the system level so that it only has to be installed once.

pip install plz-cmd

# sudo may be required on your machine
sudo pip install plz-cmd

It can also be installed inside a virtualenv. However, this means you'll have to install plz-cmd for each each virtualenv in use.

virtualenv venv
. venv/bin/activate

pip install plz-cmd

Example

plz looks for a .plz.yaml file either in the current directory or in the root of the git repo you're currently in. This file can (and should) be checked into version control.

For a .plz.yaml file located in the git root directory, commands run will be executed relative to that directory, not the current directory.

Suppose we have the following .plz.yaml file:

- id: run
  cmd: ./manage.py runserver
- id: test
  cmd:
  - ./manage.py test
  - yarn test
- id: setup
  cmd:
  - poetry install
  - poetry run ./manage.py migrate
  - yarn install
- id: ls
  cmd: ls

The following commands would be available:

plz run
plz test
plz setup

Globbing

plz supports asterisk expansion. For example, the cmd ls *.py will work as expected.

Runtime arguments

plz supports passing custom arguments when running the plz command. For example:

# bind to port 8001 instead of the default 8000
plz run 127.0.0.1:8001

Any passed arguments will be tested to see if they are file paths relative to the current directory when running the command. Using this repo as an example:

bash$ ls .*.yaml
.plz.yaml               .pre-commit-config.yaml

bash$ cd plz

bash$ plz ls ../.*.yaml

[INFO] Using config: /path/plz/.plz.yaml

===============================================================================
Running command: ls
===============================================================================

.plz.yaml
.pre-commit-config.yaml

[INFO] Process complete, return code: 0

bash$ plz ls __*.py

[INFO] Using config: /path/plz/.plz.yaml

===============================================================================
Running command: ls
===============================================================================

plz/__init__.py

[INFO] Process complete, return code: 0

Development

Setting up for development is easy when plz is already installed!

git clone https://github.com/m3brown/plz
cd plz
plz setup
plz test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for plz-cmd, version 0.7.0
Filename, size File type Python version Upload date Hashes
Filename, size plz_cmd-0.7.0-py3-none-any.whl (6.8 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size plz-cmd-0.7.0.tar.gz (5.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page