mirror of
https://github.com/Dasharo/sbctl.git
synced 2026-03-06 15:04:14 -08:00
switch to errors.New() for error messages without formatting to avoid this lint error: > printf-style function with dynamic format string and no further arguments should use print-style function instead (SA1006)
85 lines
2.8 KiB
Makefile
85 lines
2.8 KiB
Makefile
PROGNM := sbctl
|
|
PREFIX := /usr/local
|
|
BINDIR := $(PREFIX)/bin
|
|
LIBDIR := $(PREFIX)/lib
|
|
SHRDIR := $(PREFIX)/share
|
|
DOCDIR := $(PREFIX)/share/doc
|
|
MANDIR := $(PREFIX)/share/man
|
|
MANS = $(basename $(wildcard docs/*.txt))
|
|
|
|
GOFLAGS ?= -buildmode=pie -trimpath
|
|
|
|
TAG = $(shell git describe --abbrev=0 --tags)
|
|
|
|
GIT_DESCRIBE = $(shell git describe | sed 's/-/./g;s/^v//;')
|
|
|
|
VERSION = $(shell if test -f VERSION; then cat VERSION; else echo -n $(GIT_DESCRIBE) ; fi)
|
|
|
|
all: man build
|
|
build: sbctl
|
|
man: $(MANS)
|
|
$(MANS):
|
|
|
|
docs/sbctl.%: docs/sbctl.%.txt docs/asciidoc.conf
|
|
a2x --no-xmllint --asciidoc-opts="-f docs/asciidoc.conf" -d manpage -f manpage -D docs $<
|
|
|
|
.PHONY: sbctl
|
|
sbctl:
|
|
go build -ldflags="-X github.com/foxboron/sbctl.Version=$(VERSION)" -o $@ ./cmd/$@
|
|
|
|
.PHONY: completions
|
|
completions: sbctl
|
|
./sbctl completion bash | install -D /dev/stdin contrib/completions/bash-completion/completions/sbctl
|
|
./sbctl completion zsh | install -D /dev/stdin contrib/completions/zsh/site-functions/_sbctl
|
|
./sbctl completion fish | install -D /dev/stdin contrib/completions/fish/vendor_completions.d/sbctl.fish
|
|
|
|
install: sbctl completions man
|
|
install -Dm755 sbctl -t '$(DESTDIR)$(BINDIR)'
|
|
for manfile in $(MANS); do \
|
|
install -Dm644 "$$manfile" -t '$(DESTDIR)$(MANDIR)/man'"$${manfile##*.}"; \
|
|
done;
|
|
install -Dm644 contrib/completions/bash-completion/completions/sbctl '$(DESTDIR)$(SHRDIR)/bash-completion/completions/sbctl'
|
|
install -Dm644 contrib/completions/zsh/site-functions/_sbctl '$(DESTDIR)$(SHRDIR)/zsh/site-functions/_sbctl'
|
|
install -Dm644 contrib/completions/fish/vendor_completions.d/sbctl.fish '$(DESTDIR)$(SHRDIR)/fish/vendor_completions.d/sbctl.fish'
|
|
install -Dm755 contrib/kernel-install/91-sbctl.install '$(DESTDIR)$(LIBDIR)/kernel/install.d/91-sbctl.install'
|
|
install -Dm644 LICENSE -t '$(DESTDIR)$(SHRDIR)/licenses/$(PROGNM)'
|
|
|
|
.PHONY: release
|
|
release:
|
|
echo -n "$(GIT_DESCRIBE)" > VERSION
|
|
mkdir -p releases
|
|
git archive --prefix=${PROGNM}-${TAG}/ --add-file=VERSION -o releases/${PROGNM}-${TAG}.tar.gz ${TAG};
|
|
gpg --detach-sign -o releases/${PROGNM}-${TAG}.tar.gz.sig releases/${PROGNM}-${TAG}.tar.gz
|
|
gh release upload ${TAG} releases/${PROGNM}-${TAG}.tar.gz.sig releases/${PROGNM}-${TAG}.tar.gz
|
|
|
|
.PHONY: push-aur
|
|
push-aur:
|
|
git subtree push -P "contrib/aur/sbctl-git" aur:sbctl-git.git master
|
|
|
|
clean:
|
|
rm -f $(MANS)
|
|
rm -f sbctl
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
go vet ./...
|
|
go run honnef.co/go/tools/cmd/staticcheck@v0.5.1 ./...
|
|
|
|
.PHONY: test
|
|
test:
|
|
go test -v ./...
|
|
|
|
.PHONY: integration
|
|
integration:
|
|
# vmtest doesn't allow provide a way to pass --tags to the command that compiles
|
|
# the test (see: vmtest.RunGoTestsInVM) so we pass it as an env variable.
|
|
GOFLAGS=--tags=integration go test -v tests/integration_test.go
|
|
|
|
.PHONY: local-aur
|
|
.ONESHELL:
|
|
local-aur:
|
|
cd ./contrib/aur/sbctl-git
|
|
mkdir -p ./src
|
|
ln -srfT $(CURDIR) ./src/sbctl
|
|
makepkg --holdver --syncdeps --noextract --force
|