1
0
mirror of https://github.com/go-task/task.git synced 2024-12-04 10:24:45 +02:00

Write a README

This commit is contained in:
Andrey Nering 2017-02-28 09:14:11 -03:00
parent 93dabdd9a8
commit c1e3e5ca63
2 changed files with 110 additions and 2 deletions

View File

@ -9,6 +9,6 @@ trim_trailing_whitespace = true
indent_style = tab
indent_size = 8
[*.yml]
[*.{md,yml}]
indent_style = space
indent_size = 2
indent_size = 2

108
README.md Normal file
View File

@ -0,0 +1,108 @@
# Task - Simple "Make" alternative
Task is a simple tool that allows you to easily run development and build
tasks. Task is written in Go, but can be used to develop any language.
It aims to be simpler and easier to use then [GNU Make][make].
## Installation
If you have a Go environment setup, you can simply run:
```bash
go get -u -v github.com/go-task/task/cmd/task
```
Now the `task` executable should be available in your `PATH`.
## Usage
Create a file called `Taskfile.yml`. The `cmds` key should contains the
commands of a task:
```yml
build:
cmds:
- go build -v -i main.go
assets:
cmds:
- gulp
```
Running the tasks is as simple as running:
```bash
task assets build
```
If Bash is available (Linux and Windows while on Git Bash), the commands will
run in Bash, otherwise will run on `cmd` (Windows).
### Task dependencies
You may have tasks that depends on others. Just point them on `deps` will run
them automatically:
```yml
build:
deps: [assets]
cmds:
- go build -v -i main.go
assets:
cmds:
- gulp
```
In the above example, `assets` will always run right before `build` if you run
`task build`.
A task can have only dependencies and no commands to group tasks together:
```yml
assets:
deps: [js, css]
js:
cmds:
- npm run buildjs
css:
cmds:
- npm run buildcss
```
### Prevent task from running when not necessary
If a task generates something, you can inform Task the source and generated
files, to Task will prevent to run them if not necessary.
```yml
build:
deps: [js, css]
cmds:
- go build -v -i main.go
js:
cmds:
- npm run buildjs
sources:
- js/src/**/*.js
generates:
- public/bundle.js
css:
cmds:
- npm run buildcss
sources:
- css/src/*.css
generates:
- public/bundle.css
```
`sources` and `generates` should be file patterns. When both are given, Task
will compare the modification date/time of the files to determine if it's
necessary to run the task. If not, it will just print
`Task "js" is up to date`.
[make]: https://www.gnu.org/software/make/