# Makefile for backup-tui # Ensures consistent binary naming and build process # Configuration BINARY_NAME := backup-tui SOURCE_FILE := main.go SHELL_DIR := /home/acedanger/shell TUI_DIR := /home/acedanger/shell/tui # Go configuration GOCMD := go GOBUILD := $(GOCMD) build GOCLEAN := $(GOCMD) clean GOTEST := $(GOCMD) test GOGET := $(GOCMD) get GOMOD := $(GOCMD) mod # Default target .PHONY: all all: clean deps build install # Build the application .PHONY: build build: @echo "๐Ÿ”จ Building $(BINARY_NAME)..." cd $(TUI_DIR) && $(GOBUILD) -o $(BINARY_NAME) $(SOURCE_FILE) @echo "โœ… Build completed: $(TUI_DIR)/$(BINARY_NAME)" # Download dependencies .PHONY: deps deps: @echo "๐Ÿ“ฆ Downloading dependencies..." cd $(TUI_DIR) && $(GOMOD) tidy @echo "โœ… Dependencies updated" # Install to shell directory .PHONY: install install: build @echo "๐Ÿ“‹ Installing to shell directory..." cp $(TUI_DIR)/$(BINARY_NAME) $(SHELL_DIR)/$(BINARY_NAME) chmod +x $(SHELL_DIR)/$(BINARY_NAME) @echo "โœ… Installed to $(SHELL_DIR)/$(BINARY_NAME)" # Clean build artifacts .PHONY: clean clean: @echo "๐Ÿงน Cleaning build artifacts..." cd $(TUI_DIR) && $(GOCLEAN) rm -f $(TUI_DIR)/$(BINARY_NAME) rm -f $(SHELL_DIR)/$(BINARY_NAME) @echo "โœ… Clean completed" # Run the application .PHONY: run run: build @echo "๐Ÿš€ Running $(BINARY_NAME)..." cd $(TUI_DIR) && ./$(BINARY_NAME) # Test the application .PHONY: test test: @echo "๐Ÿงช Running tests..." cd $(TUI_DIR) && $(GOTEST) -v ./... # Development build (fast, no install) .PHONY: dev dev: @echo "๐Ÿ”ง Development build..." cd $(TUI_DIR) && $(GOBUILD) -o $(BINARY_NAME) $(SOURCE_FILE) @echo "โœ… Development build completed" # Show help .PHONY: help help: @echo "Available targets:" @echo " all - Clean, download deps, build, and install (default)" @echo " build - Build the application" @echo " deps - Download Go dependencies" @echo " install - Install binary to shell directory" @echo " clean - Remove build artifacts" @echo " run - Build and run the application" @echo " test - Run tests" @echo " dev - Quick development build" @echo " help - Show this help message" # Version info .PHONY: version version: @echo "Binary name: $(BINARY_NAME)" @echo "Source file: $(SOURCE_FILE)" @echo "TUI directory: $(TUI_DIR)" @echo "Shell directory: $(SHELL_DIR)"