Picasso is a versatile task runner 🏃 with a powerful plugin system.
- Universal task runner 🛠️
- Extensible via plugins 🥳
- Template generation in task runs
- Task watcher (allows to watch on file system changes and re-runs tasks)no
brew install andersnormal/picasso/picasso
spec: 1
version: 1.0.0
authors:
- Sebastian Döll <sebastian@katallaxie.me>
homepage: https://github.com/andersnormal/picasso
repository: https://github.com/andersnormal/picasso
plugins:
-
id: picasso-plugin-init
path: picasso-plugin-init
tasks:
test:
disabled: false
desc: test
vars:
region: test
env:
REGION: test
steps:
- cmd: echo {{.OS}}
watch:
paths:
- pkg/config
template:
-
file: ./examples/config.json.tpl
out: ./config.json
vars:
foo: bar
Plugins are implemented using the go plugin over RPC package.
Plugins are triggered using the --plugin
flag. They are executed with the vars
set with the --var
flag and the global vars
property in the .picasso.yml
file.
See plugin.go
for an example.
The goal is that Picasso is build and maintained by itself. However, up until this very moment. There two quick steps to build it.
The development is intended to be run with Codespaces the blazing fast cloud developer environment.
env GO111MODULE=on goreleaser release --snapshot --rm-dist