Adopt the standard tooling: a Makefile of thin shims over a full scripts-to-rule-them-all `script/` set, the canonical `.golangci.yml` vendored byte-identical from `sneak/prompts`, docker-only linting via `Dockerfile.lint`, a `Dockerfile` and Gitea workflow that gate every push, and prettier/editorconfig/dockerignore config. `make build` pointed at a `cmd/dcfinfo` that is not in the tree and could never have succeeded; this repo is a library, so `build` is now the compile check over every package. Clear the 57 findings the canonical linter config reports on `pkg/dcf`. Two were real: `findDCFMountPoints` checked a never-assigned `erro` instead of the error from `findAllMountPoints`, discarding it, and `privatePath` was computed twice so the first computation was dead. Mountpoint selection otherwise behaves exactly as before; the defects that survive are filed as issue #6, not fixed here. Rename `DCFStore` to `Store` and `DCFObject` to `Object` (with its `DCFStoreRoot` field to `StoreRoot`), which revive's stutter rule requires and which the `fs.FS` rework in issue #4 will build on. Replace the placeholder test with tests over the exported surface. The filesystem walk stays uncovered: it is reachable only through `GetDCFStores`, which needs real mounted media. README keeps its content, reorganised into the required sections and gaining Entrypoints. (closes #1)
51 lines
858 B
Makefile
51 lines
858 B
Makefile
.PHONY: bootstrap setup test lint fmt fmt-check check build deps docker cibuild clean hooks
|
|
|
|
# Every target is a thin shim over script/. The scripts are the real
|
|
# entrypoints: they carry the project-specific knowledge (flags,
|
|
# timeouts, docker-only linting) that a raw `go test` or `golangci-lint`
|
|
# invocation silently bypasses. Never call the underlying tools
|
|
# directly.
|
|
.DEFAULT_GOAL := check
|
|
|
|
bootstrap:
|
|
@script/bootstrap
|
|
|
|
setup:
|
|
@script/setup
|
|
|
|
test:
|
|
@script/test
|
|
|
|
lint:
|
|
@script/lint
|
|
|
|
fmt:
|
|
@script/fmt
|
|
|
|
fmt-check:
|
|
@script/fmt-check
|
|
|
|
check:
|
|
@script/check
|
|
|
|
# This repo is a library: there is no cmd/ and nothing to link, so
|
|
# `build` is the compile check over every package.
|
|
build:
|
|
go build ./...
|
|
|
|
deps:
|
|
go mod download
|
|
go mod tidy
|
|
|
|
docker:
|
|
@script/docker
|
|
|
|
cibuild:
|
|
@script/cibuild
|
|
|
|
clean:
|
|
go clean ./...
|
|
|
|
hooks:
|
|
@script/install-precommit
|