Files
skz-sloptrap/Makefile
Samuel Aubertin 636098a15b alpha
2025-11-08 03:59:16 +01:00

51 lines
3.0 KiB
Makefile

SHELL := /bin/sh
PROGRAM := sloptrap
KNOWN_INSTALL_DIRS := $(HOME)/.local/bin /usr/local/bin /opt/homebrew/bin /opt/local/bin /usr/pkg/bin /usr/bin /usr/local/sbin
AUTO_INSTALL_DIR := $(shell sh -c 'set -e; for dir in $(KNOWN_INSTALL_DIRS); do [ -n "$$dir" ] || continue; if [ -d "$$dir" ] && [ -w "$$dir" ]; then printf "%s" "$$dir"; exit 0; fi; done; fallback="$$HOME/.local/bin"; mkdir -p "$$fallback"; printf "%s" "$$fallback"')
INSTALL_DIR ?= $(AUTO_INSTALL_DIR)
INSTALL_PATH := $(DESTDIR)$(INSTALL_DIR)/$(PROGRAM)
COLOR_TEXT := \033[38;5;247m
COLOR_HIGHLIGHT := \033[38;5;202m
COLOR_ERROR := \033[38;5;160m
COLOR_COMMENT := \033[38;5;242m
RESET := \033[0m
PREFIX_TEXT := \033[38;5;247m░\033[0m
PREFIX_HIGHLIGHT := \033[38;5;202m█\033[0m
PREFIX_ERROR := \033[38;5;160m▒\033[0m
PREFIX_COMMENT := \033[38;5;242m▒\033[0m
.PHONY: help install update uninstall regress
help:
@printf '%b%bsloptrap%b installer %b\n' '$(PREFIX_TEXT)' '$(COLOR_HIGHLIGHT)' '$(COLOR_TEXT)' '$(RESET)'
@printf '%b%b make install %b[INSTALL_DIR=%s]%b\n' '$(PREFIX_TEXT)' '$(COLOR_HIGHLIGHT)' '$(COLOR_COMMENT)' '$(INSTALL_DIR)' '$(RESET)'
@printf '%b%b make uninstall%b\n' '$(PREFIX_TEXT)' '$(COLOR_HIGHLIGHT)' '$(RESET)'
install update: $(PROGRAM)
@action="Installing"; if [ -f "$(INSTALL_PATH)" ]; then action="Updating"; fi; \
printf '%b%b%s%b sloptrap %b(%s)%b\n' '$(PREFIX_COMMENT)' '$(COLOR_HIGHLIGHT)' "$$action" '$(COLOR_TEXT)' '$(COLOR_COMMENT)' '$(INSTALL_PATH)' '$(RESET)'
@install -Dm755 $(PROGRAM) "$(INSTALL_PATH)"
@printf '%b%bSuccess!%b Run it with:%b\n' '$(PREFIX_COMMENT)' '$(COLOR_HIGHLIGHT)' '$(COLOR_TEXT)' '$(RESET)'
@printf '%b%b%b %s /path/to/project%b\n' '$(PREFIX_HIGHLIGHT)' '$(COLOR_HIGHLIGHT)' '\033[1m' '$(PROGRAM)' '$(RESET)'
@printf '%b%bExample files to configure your project:%b\n' '$(PREFIX_TEXT)' '$(COLOR_TEXT)' '$(RESET)'
@printf '%b%b /path/to/project/%b.sloptrap%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(COLOR_TEXT)' '$(RESET)'
@printf '%b%b name=your-project%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b default_targets=build run%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b packages_extra=make jq%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b codex_args=--sandbox workspace-write%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b allow_host_network=false%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b /path/to/project/%b.sloptrapignore%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(COLOR_TEXT)' '$(RESET)'
@printf '%b%b .git/%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b secrets/%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
@printf '%b%b build/output.log%b\n' '$(PREFIX_COMMENT)' '$(COLOR_COMMENT)' '$(RESET)'
uninstall:
@printf '%b%bRemoving%b %b%s%b\n' '$(PREFIX_COMMENT)' '$(COLOR_TEXT)' '$(COLOR_TEXT)' '$(COLOR_COMMENT)' '$(INSTALL_PATH)' '$(RESET)'
@rm -f "$(INSTALL_PATH)"
regress:
@./tests/run_tests.sh