Files
softplayer-proto/Taskfile.yml
Nikolai Rodionov 4c45fd39fb
Some checks failed
ci/woodpecker/push/lint Pipeline failed
A couple up updates
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2026-04-19 22:14:28 +02:00

86 lines
2.0 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: |-
"{{.CONTAINER_TOOL}}" run --rm \
-v $PWD:/workspace:z \
--workdir /workspace \
docker.io/yoheimuta/protolint:latest lint \
$(find . -type f -iname "*.proto")
gen-docs:
desc: Generate docs in a container
deps:
- protodoc
cmd: |-
"{{.CONTAINER_TOOL}}" run --rm \
-v $PWD/proto:/protos \
-v $PWD:/out:z \
docker.io/pseudomuto/protoc-gen-doc:latest --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"