chore: refactor Makefile with build and install improvements
- fix typo in INSTALLED_BIN variable name - add GENERATE flag to optionally skip go generate - add CREATE_SYSTEM_RESOURCES flag for user/dir creation control - make GIT_VERSION optional with ?= operator - add informative messages for skipped operations
This commit is contained in:
29
Makefile
29
Makefile
@ -1,16 +1,21 @@
|
|||||||
NAME := alr
|
NAME := alr
|
||||||
GIT_VERSION = $(shell git describe --tags )
|
GIT_VERSION ?= $(shell git describe --tags )
|
||||||
IGNORE_ROOT_CHECK ?= 0
|
IGNORE_ROOT_CHECK ?= 0
|
||||||
DESTDIR ?=
|
DESTDIR ?=
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
BIN := ./$(NAME)
|
BIN := ./$(NAME)
|
||||||
INSTALED_BIN := $(DESTDIR)/$(PREFIX)/bin/$(NAME)
|
INSTALLED_BIN := $(DESTDIR)/$(PREFIX)/bin/$(NAME)
|
||||||
COMPLETIONS_DIR := ./scripts/completion
|
COMPLETIONS_DIR := ./scripts/completion
|
||||||
BASH_COMPLETION := $(COMPLETIONS_DIR)/bash
|
BASH_COMPLETION := $(COMPLETIONS_DIR)/bash
|
||||||
ZSH_COMPLETION := $(COMPLETIONS_DIR)/zsh
|
ZSH_COMPLETION := $(COMPLETIONS_DIR)/zsh
|
||||||
INSTALLED_BASH_COMPLETION := $(DESTDIR)$(PREFIX)/share/bash-completion/completions/$(NAME)
|
INSTALLED_BASH_COMPLETION := $(DESTDIR)$(PREFIX)/share/bash-completion/completions/$(NAME)
|
||||||
INSTALLED_ZSH_COMPLETION := $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_$(NAME)
|
INSTALLED_ZSH_COMPLETION := $(DESTDIR)$(PREFIX)/share/zsh/site-functions/_$(NAME)
|
||||||
|
|
||||||
|
GENERATE ?= 1
|
||||||
|
|
||||||
|
CREATE_SYSTEM_RESOURCES ?= 1
|
||||||
|
ROOT_DIRS := /var/cache/alr /etc/alr
|
||||||
|
|
||||||
ADD_LICENSE_BIN := go run github.com/google/addlicense@4caba19b7ed7818bb86bc4cd20411a246aa4a524
|
ADD_LICENSE_BIN := go run github.com/google/addlicense@4caba19b7ed7818bb86bc4cd20411a246aa4a524
|
||||||
GOLANGCI_LINT_BIN := go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.63.4
|
GOLANGCI_LINT_BIN := go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.63.4
|
||||||
XGOTEXT_BIN := go run github.com/Tom5521/xgotext@v1.2.0
|
XGOTEXT_BIN := go run github.com/Tom5521/xgotext@v1.2.0
|
||||||
@ -21,7 +26,11 @@ build: check-no-root $(BIN)
|
|||||||
|
|
||||||
export CGO_ENABLED := 0
|
export CGO_ENABLED := 0
|
||||||
$(BIN):
|
$(BIN):
|
||||||
|
ifeq ($(GENERATE),1)
|
||||||
go generate ./...
|
go generate ./...
|
||||||
|
else
|
||||||
|
@echo "Skipping go generate (GENERATE=0)"
|
||||||
|
endif
|
||||||
go build -ldflags="-X 'gitea.plemya-x.ru/Plemya-x/ALR/internal/config.Version=$(GIT_VERSION)'" -o $@
|
go build -ldflags="-X 'gitea.plemya-x.ru/Plemya-x/ALR/internal/config.Version=$(GIT_VERSION)'" -o $@
|
||||||
|
|
||||||
check-no-root:
|
check-no-root:
|
||||||
@ -32,20 +41,26 @@ check-no-root:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
install: \
|
install: \
|
||||||
$(INSTALED_BIN) \
|
$(INSTALLED_BIN) \
|
||||||
$(INSTALLED_BASH_COMPLETION) \
|
$(INSTALLED_BASH_COMPLETION) \
|
||||||
$(INSTALLED_ZSH_COMPLETION)
|
$(INSTALLED_ZSH_COMPLETION)
|
||||||
@echo "Installation done!"
|
@echo "Installation done!"
|
||||||
|
|
||||||
$(INSTALED_BIN): $(BIN)
|
$(INSTALLED_BIN): $(BIN)
|
||||||
install -Dm755 $< $@
|
install -Dm755 $< $@
|
||||||
setcap cap_setuid,cap_setgid+ep $(INSTALED_BIN)
|
ifeq ($(CREATE_SYSTEM_RESOURCES),1)
|
||||||
|
setcap cap_setuid,cap_setgid+ep $(INSTALLED_BIN)
|
||||||
@if id alr >/dev/null 2>&1; then \
|
@if id alr >/dev/null 2>&1; then \
|
||||||
echo "User 'alr' already exists. Skipping."; \
|
echo "User 'alr' already exists. Skipping."; \
|
||||||
else \
|
else \
|
||||||
useradd -r -s /usr/sbin/nologin alr; \
|
useradd -r -s /usr/sbin/nologin alr; \
|
||||||
fi
|
fi
|
||||||
install -d -o alr -g alr -m 755 /var/cache/alr /etc/alr
|
@for dir in $(ROOT_DIRS); do \
|
||||||
|
install -d -o alr -g alr -m 755 $$dir; \
|
||||||
|
done
|
||||||
|
else
|
||||||
|
@echo "Skipping user and root dir creation (CREATE_SYSTEM_RESOURCES=0)"
|
||||||
|
endif
|
||||||
|
|
||||||
$(INSTALLED_BASH_COMPLETION): $(BASH_COMPLETION)
|
$(INSTALLED_BASH_COMPLETION): $(BASH_COMPLETION)
|
||||||
install -Dm755 $< $@
|
install -Dm755 $< $@
|
||||||
@ -55,7 +70,7 @@ $(INSTALLED_ZSH_COMPLETION): $(ZSH_COMPLETION)
|
|||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
rm -f \
|
rm -f \
|
||||||
$(INSTALED_BIN) \
|
$(INSTALLED_BIN) \
|
||||||
$(INSTALLED_BASH_COMPLETION) \
|
$(INSTALLED_BASH_COMPLETION) \
|
||||||
$(INSTALLED_ZSH_COMPLETION)
|
$(INSTALLED_ZSH_COMPLETION)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user