# compiles current source code and make "task" executable available on
# $GOPATH/bin/task{.exe}
install:
  desc: Installs Task
  cmds:
    - go install -v -ldflags="-w -s -X main.version={{.GIT_COMMIT}}" ./cmd/task

dl-deps:
  desc: Downloads cli dependencies
  cmds:
    - go get -u github.com/golang/lint/golint
    - go get -u github.com/goreleaser/goreleaser
    - go get -u github.com/asticode/go-astitodo/astitodo
    - go get -u github.com/golang/dep/cmd/dep

update-deps:
  desc: Updates dependencies
  cmds:
    - dep ensure
    - dep ensure -update

clean:
  desc: Cleans temp files and folders
  cmds:
    - rm -rf dist/

lint:
  desc: Runs golint
  cmds:
    - golint {{.GO_PACKAGES}}
  silent: true

test:
  desc: Runs test suite
  deps: [install]
  cmds:
    - go test {{.GO_PACKAGES}}

# https://github.com/goreleaser/goreleaser
release:
  desc: Release Task
  cmds:
    - goreleaser

test-release:
  desc: Tests release process without publishing
  cmds:
    - goreleaser --skip-validate --skip-publish

todo:
  desc: Prints TODO comments present in the code
  cmds:
    - astitodo {{.GO_PACKAGES}}
  silent: true
