Files
softplayer-proto/Taskfile.yml
Nikolai Rodionov 54e1cedeb0
All checks were successful
ci/woodpecker/push/lint Pipeline was successful
A couple up updates
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-19 22:28:28 +02:00

77 lines
1.7 KiB
YAML

# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: "3"
vars:
LOCALBIN:
sh: echo "$(pwd)/bin"
CONTAINER_TOOL: '{{.CONTAINER_TOOL | default "podman"}}'
# Tools
PROTODOC: "{{.LOCALBIN}}/protodoc"
PROTOLINT: "{{.LOCALBIN}}/protolint"
tasks:
lint:
desc: Run linter in a container
deps:
- protolint
cmd: '"{{.PROTOLINT}}" lint $(find . -type f -iname "*.proto")'
gen-docs:
desc: Generate docs in a container
deps:
- protodoc
cmd: '"{{.PROTODOC}}" --doc_opt=markdown,README.md'
# Install required tools
localbin:
desc: Create local bin directory
silent: true
cmds:
- mkdir -p "{{.LOCALBIN}}"
protodoc:
desc: Install protodoc
silent: true
deps:
- localbin
cmds:
- task: go-install-tool
vars:
TARGET: "{{.PROTODOC}}"
PACKAGE: go.etcd.io/protodoc
VERSION: "latest"
protolint:
desc: Install protolint
silent: true
deps:
- localbin
cmds:
- task: go-install-tool
vars:
TARGET: "{{.PROTOLINT}}"
PACKAGE: github.com/yoheimuta/protolint/cmd/protolint
VERSION: "latest"
go-install-tool:
internal: true
silent: true
cmd: |-
set -e
TARGET="{{.TARGET}}"
PACKAGE="{{.PACKAGE}}@{{.VERSION}}"
VERSIONED="${TARGET}-{{.VERSION}}"
if [ -f "$VERSIONED" ] && [ "$(readlink -- "$TARGET" 2>/dev/null)" = "$VERSIONED" ]; then
echo "$PACKAGE already installed"
exit 0
fi
echo "Downloading $PACKAGE"
rm -f "$TARGET"
GOBIN="{{.LOCALBIN}}" go install "$PACKAGE"
mv "{{.LOCALBIN}}/$(basename "$TARGET")" "$VERSIONED"
ln -sf "$(realpath "$VERSIONED")" "$TARGET"