# README
pimp
pimp is a shell-agnostic command expander and task runner with pattern matching, templating and scripting capabilities that increases your productivity.
Installation
Pre-built binaries
Download the appropriate binary from the latest release and install it where you see fit.
Note: the macOS binaries are not signed yet, you will have to open them through the GUI first.
Via the Go toolchain
If you have the Go toolchain on your machine, you can install the latest pimp release with the following command:
go install github.com/aymericbeaumet/pimp/cmd/pimp@latest
Usage
Pimpfile
Pimpfile are an important part of pimp. These YAML files allow you to configure command expansion and tasks with a simple and expressive syntax.
Read more about Pimpfiles in the documentation.
Command Expander
When pimp is used as a command expander, it's going to try to match the command and args it is being given with the patterns you have defined in your ~/.Pimpfile
.
For example in this case, when git
is passed (with no extra arguments), it is going to be expanded into git status -sb
. If some arguments are passed, then it is going to be expanded to git <args>
.
$ cat ~/.Pimpfile
git: git status -sb
git ...: git
$ pimp git # equivalent to `git status -sb`
$ pimp git log # equivalent to `git log`
Read more about command expansion in the documentation.
Task Runner
Following the same concept as command expansion (see above), you can also leverage pimp to behave as a task runner for your project. The Pimpfile in your local directory always has the highest priority.
For example this is how you would do if you wanted to define a
$ cat ./Pimpfile
test: go test ./...
$ pimp test
Read more about running tasks in the documentation.
Template Engine
$ pimp --render template.tmpl
Read more about how to use pimp as a stand-alone template engine in the documentation.
Script Engine (PimpScript)
$ pimp --run script.pimp
Read more about how to use pimp as a script engine in the documentation.
Go Library
Read more about how to import pimp as a Go library in the documentation.
Documentation
The documentation contains information regarding how you can get the most out of pimp.
Examples
The examples are available as references to help you start using pimp.
Development
The Go toolchain is required to work on this project.
Building
go build -o pimp .
Installing
go install .
Testing
go test -v ./...
Releasing
Pimp tasks are defined in the ./Pimpfile to release new versions. The release process is entirely automated and is being taken care of by the CI.
pimp major
pimp minor
pimp patch