obsidian-cli-inspector 1.0.3

Local-first CLI/TUI for indexing and querying Obsidian vaults
Documentation
.PHONY: all validate generate-pkgbuild-git generate-srcinfo-git \
        syntax-check build-test clean help

PKGNAME = obsidian-cli-inspector
REPO_OWNER = jingyi-zhao-01
REPO_NAME = obsidian-cli-inspector

# ============================================================
# Help
# ============================================================

help:
	@echo "AUR Git targets:"
	@echo "  make all"
	@echo "  make syntax-check"
	@echo "  make build-test"
	@echo "  make clean"

# ============================================================
# Entry Point
# ============================================================

all: generate-pkgbuild-git generate-srcinfo-git
	@echo "✓ Generated PKGBUILD and .SRCINFO for git version"


# ============================================================
# Step 1: Generate PKGBUILD for git
# ============================================================

generate-pkgbuild-git:
	@echo "Generating PKGBUILD for -git variant..."
	@./generate-pkgbuild-git.sh $(PKGNAME) $(REPO_OWNER) $(REPO_NAME) > PKGBUILD

# ============================================================
# Step 2: Generate .SRCINFO
# ============================================================

generate-srcinfo-git:
	@echo "Generating .SRCINFO..."
	@if command -v makepkg >/dev/null 2>&1; then \
	  makepkg --printsrcinfo > .SRCINFO; \
	elif command -v docker >/dev/null 2>&1; then \
	  docker run --rm -v "$$(pwd)":/pkg -v "$$(pwd)/../.git":/pkg/.git:ro -w /pkg archlinux:latest bash -lc "\
	    pacman -Sy --noconfirm --needed base-devel cargo git >/dev/null && \
	    useradd -m builder && \
	    find /pkg -not -path '*/.git*' -exec chown builder:builder {} \; && \
	    git config --global --add safe.directory /pkg && \
	    git config --global --add safe.directory /pkg/.git && \
	    su builder -s /bin/bash -c 'git config --global --add safe.directory /pkg && git config --global --add safe.directory /pkg/.git && cd /pkg && makepkg --printsrcinfo'\
	  " > .SRCINFO; \
	else \
	  echo "ERROR: makepkg not found and Docker unavailable."; \
	  exit 127; \
	fi

# ============================================================
# Syntax Check (Arch container)
# ============================================================

syntax-check:
	@if [ ! -f PKGBUILD ]; then echo "ERROR: PKGBUILD not found"; exit 1; fi
	@echo "Validating PKGBUILD syntax..."
	@docker run --rm -v "$$(pwd)":/pkg archlinux:latest bash -c "\
	  pacman -Syu --noconfirm base-devel cargo git >/dev/null && \
	  cd /pkg && makepkg --check \
	"
	@echo "✓ PKGBUILD syntax is valid"

# ============================================================
# Build Test (Arch container)
# ============================================================

build-test:
	@if [ ! -f PKGBUILD ]; then echo "ERROR: PKGBUILD not found"; exit 1; fi
	@echo "Testing PKGBUILD build..."
	@docker run --rm -v "$$(pwd)":/pkg archlinux:latest bash -c "\
	  pacman -Syu --noconfirm base-devel cargo git >/dev/null && \
	  useradd -m builder && \
	  chown -R builder:builder /pkg && \
	  su builder -s /bin/bash -c 'cd /pkg && makepkg -sf --noconfirm --cleanbuild --clean'\
	"
	@echo "✓ Build test passed"

# ============================================================
# Clean
# ============================================================

clean:
	@rm -f PKGBUILD .SRCINFO
	@echo "✓ Cleaned up generated files"