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