- AGE encryption with master password model - Core commands: init, show, insert, edit, generate, rm, mv, cp, find, grep, ls - Git integration for version control - Clipboard support (X11 and Wayland) - Secure password generation - Backup and restore functionality - Comprehensive security features - Complete documentation
64 lines
1.8 KiB
Makefile
64 lines
1.8 KiB
Makefile
.PHONY: build install clean test release man install-man
|
|
|
|
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
|
PREFIX ?= /usr/local
|
|
MANPREFIX ?= $(PREFIX)/share/man
|
|
|
|
build:
|
|
go build -o passage .
|
|
|
|
build-release:
|
|
go build -trimpath -ldflags "-s -w -X main.version=$(VERSION)" -o passage .
|
|
|
|
install: build
|
|
@mkdir -p $(DESTDIR)$(PREFIX)/bin
|
|
cp passage $(DESTDIR)$(PREFIX)/bin/passage
|
|
@echo "Installed passage to $(DESTDIR)$(PREFIX)/bin/passage"
|
|
|
|
install-user: build
|
|
@mkdir -p ~/.local/bin
|
|
cp passage ~/.local/bin/passage
|
|
@echo "Installed passage to ~/.local/bin/passage"
|
|
|
|
man: passage.1
|
|
|
|
passage.1: passage.1.md
|
|
@if command -v pandoc >/dev/null 2>&1; then \
|
|
pandoc passage.1.md -s -t man -o passage.1; \
|
|
elif command -v go-md2man >/dev/null 2>&1; then \
|
|
go-md2man -in passage.1.md -out passage.1; \
|
|
else \
|
|
echo "Error: pandoc or go-md2man required to build manpage"; \
|
|
echo "Install pandoc: sudo apt-get install pandoc (Debian/Ubuntu)"; \
|
|
echo "Or install go-md2man: go install github.com/cpuguy83/go-md2man/v2@latest"; \
|
|
exit 1; \
|
|
fi
|
|
|
|
install-man: man
|
|
@mkdir -p $(DESTDIR)$(MANPREFIX)/man1
|
|
cp passage.1 $(DESTDIR)$(MANPREFIX)/man1/passage.1
|
|
@if command -v mandb >/dev/null 2>&1; then \
|
|
mandb $(DESTDIR)$(MANPREFIX) >/dev/null 2>&1 || true; \
|
|
fi
|
|
@echo "Installed manpage to $(DESTDIR)$(MANPREFIX)/man1/passage.1"
|
|
|
|
install-user-man: man
|
|
@mkdir -p ~/.local/share/man/man1
|
|
cp passage.1 ~/.local/share/man/man1/passage.1
|
|
@if command -v mandb >/dev/null 2>&1; then \
|
|
mandb ~/.local/share/man >/dev/null 2>&1 || true; \
|
|
fi
|
|
@echo "Installed manpage to ~/.local/share/man/man1/passage.1"
|
|
|
|
clean:
|
|
rm -f passage passage.1
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
test-race:
|
|
go test -race ./...
|
|
|
|
release: build-release
|
|
@echo "Built release version: $(VERSION)"
|