All it does is run some pre-configured tasks for you, like running your applications, tests, building binaries, or some other scripts.
It is inspired by other task runners like Taskfile, Make etc.
But source code of those tools are like super big, and complex. So I decided to make a simpler one.
go install github.com/nxtcoder17/runfile/cmd/run@latest
Create a Runfile
in the root of your project, and add tasks to it.
- Run tasks
- Run tasks with Key-Value environment variables
- Run tasks with dynamic environment variables (by shell execution)
- Run tasks with dotenv files as their environment variables
- Running tasks in different working directory reference
- Running tasks in parallel
- Running tasks with watch mode
- Requirements prior to running a target
- Environment validations and default value
version: 0.0.1
tasks:
test:
env:
key1: value1
key2: value2
key3:
sh: echo -n "hello"
dotenv:
- .secrets/env # load dotenv file
cmd:
- echo "value of key1 is '$key1'"
- echo "value of key2 is '$key2'"
- echo "value of key3 is '$key3'"
- echo "value of key4 is '$key4'" # assuming key4 is defined in .secrets/env
version: 0.0.1
tasks:
test:
env:
key1: value1
key2: value2
key3:
sh: echo -n "hello"
key4:
required: true
dotenv:
- .secrets/env # load dotenv file
cmd:
- echo "value of key1 is '$key1'"
- echo "value of key2 is '$key2'"
- echo "value of key3 is '$key3'"
- echo "value of key4 is '$key4'" # assuming key4 is defined in .secrets/env
build:
dir: cmd/app
cmd:
- go build -o app
run:
dir: cmd/app
cmd:
- go run .