@@ -9,15 +9,18 @@ SHELL := /usr/bin/env bash
99PREFIX ?= /usr/local
1010INSTALL_DIR = $(PREFIX ) /bin
1111
12- SOURCE_FILE = src/stacker.cr
12+ APP_NAME = stacker
13+ SOURCE_FILE = src/$(APP_NAME ) .cr
1314OUTPUT_DIR = bin
14- OUTPUT_FILE = stacker
15+ OUTPUT_FILE = $( APP_NAME )
1516
1617SPEC_OPTS =
1718COMPILE_OPTS_DEV = --threads 4
1819COMPILE_OPTS_RELEASE = --threads 4 --release --error-trace
1920
2021# Use sudo if current user is not root
22+ UID := $(shell id -u)
23+
2124ifneq ($(UID ) , 0)
2225 sudo = sudo
2326else
@@ -60,6 +63,7 @@ spec: ## Run Crystal spec
6063doc : # # Generate Stacker documentation
6164 rm -rf docs
6265 crystal doc
66+ open docs/index.html
6367
6468ameba : # # Run static code analysis
6569 bin/ameba
@@ -92,15 +96,15 @@ deps-release: ## Install production dependencies
9296 shards install --production
9397
9498install : # # Install stacker in $(INSTALL_DIR)
95- $(sudo ) cp $(OUTPUT_DIR ) /$(OUTPUT_FILE ) $(INSTALL_DIR ) /stacker
99+ $(sudo ) cp $(OUTPUT_DIR ) /$(OUTPUT_FILE ) $(INSTALL_DIR ) /$( OUTPUT_FILE )
96100
97101uninstall : # # Uninstall stacker from $(INSTALL_DIR)
98- $(sudo ) rm -f $(INSTALL_DIR ) /stacker
102+ $(sudo ) rm -f $(INSTALL_DIR ) /$( OUTPUT_FILE )
99103
100104release-static : # # Build static binary with Earthly
101105 docker buildx bake binary
102- mv packages/linux_arm64/stacker -linux-arm64 packages/
103- mv packages/linux_amd64/stacker -linux-amd64 packages/
106+ mv packages/linux_arm64/$( OUTPUT_FILE ) -linux-arm64 packages/
107+ mv packages/linux_amd64/$( OUTPUT_FILE ) -linux-amd64 packages/
104108 rmdir packages/linux_arm64/ packages/linux_amd64/
105109 rm -f packages/* .sha256
106110 cd packages; for f in * ; do shasum --algorithm 256 $$ f > $$ f.sha256; done
0 commit comments