BINARY_NAME=debtik
BUILD_DIR=bin
GO=go

.PHONY: all build clean run install test

all: build

build:
	@echo "Building $(BINARY_NAME)..."
	@mkdir -p $(BUILD_DIR)
	CGO_ENABLED=0 $(GO) build -ldflags="-s -w" -o $(BUILD_DIR)/$(BINARY_NAME) cmd/server/main.go
	CGO_ENABLED=0 $(GO) build -ldflags="-s -w" -o $(BUILD_DIR)/debtik-cli ./cmd/debtik-cli
	@echo "Build complete: $(BUILD_DIR)/$(BINARY_NAME)"

run: build
	./$(BUILD_DIR)/$(BINARY_NAME) -addr :8080

install: build
	@echo "Installing $(BINARY_NAME) to /usr/local/bin/..."
	cp $(BUILD_DIR)/$(BINARY_NAME) /usr/local/bin/$(BINARY_NAME)
	cp $(BUILD_DIR)/debtik-cli /usr/local/bin/debtik-cli
	chmod +x /usr/local/bin/$(BINARY_NAME) /usr/local/bin/debtik-cli
	@mkdir -p /etc/debtik /etc/network/interfaces.d
	cp systemd/debtik.service /etc/systemd/system/debtik.service
	systemctl daemon-reload
	systemctl enable --now debtik
	@echo "Installed and started service debtik successfully!"

clean:
	rm -rf $(BUILD_DIR)

test:
	$(GO) test ./...
	node --test scripts/ui-regression.test.cjs
