2025-08-23 22:09:37 +02:00
|
|
|
BINARY_NAME=skyview
|
|
|
|
|
BUILD_DIR=build
|
2025-08-23 23:51:37 +02:00
|
|
|
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
2025-08-23 22:09:37 +02:00
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
.PHONY: build clean run dev test lint deb deb-clean install-deps
|
2025-08-23 22:09:37 +02:00
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
@echo "Building $(BINARY_NAME)..."
|
|
|
|
|
@mkdir -p $(BUILD_DIR)
|
2025-08-23 23:51:37 +02:00
|
|
|
go build -ldflags="-w -s -X main.version=$(VERSION)" -o $(BUILD_DIR)/$(BINARY_NAME) ./cmd/skyview
|
2025-08-23 22:09:37 +02:00
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
@echo "Cleaning..."
|
|
|
|
|
@rm -rf $(BUILD_DIR)
|
|
|
|
|
go clean
|
|
|
|
|
|
|
|
|
|
run: build
|
|
|
|
|
@echo "Running $(BINARY_NAME)..."
|
|
|
|
|
@./$(BUILD_DIR)/$(BINARY_NAME)
|
|
|
|
|
|
|
|
|
|
dev:
|
|
|
|
|
@echo "Running in development mode..."
|
2025-08-23 23:51:37 +02:00
|
|
|
go run ./cmd/skyview
|
2025-08-23 22:09:37 +02:00
|
|
|
|
|
|
|
|
test:
|
|
|
|
|
@echo "Running tests..."
|
|
|
|
|
go test ./...
|
|
|
|
|
|
|
|
|
|
lint:
|
|
|
|
|
@echo "Running linter..."
|
|
|
|
|
@if command -v golangci-lint > /dev/null 2>&1; then \
|
|
|
|
|
golangci-lint run; \
|
|
|
|
|
else \
|
|
|
|
|
echo "golangci-lint not installed, skipping lint"; \
|
|
|
|
|
fi
|
|
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
# Debian package targets
|
|
|
|
|
deb:
|
|
|
|
|
@echo "Building Debian package..."
|
|
|
|
|
@./scripts/build-deb.sh
|
|
|
|
|
|
|
|
|
|
deb-clean:
|
|
|
|
|
@echo "Cleaning Debian package artifacts..."
|
|
|
|
|
@rm -f debian/usr/bin/skyview
|
|
|
|
|
@rm -rf build/*.deb
|
|
|
|
|
|
|
|
|
|
deb-install: deb
|
|
|
|
|
@echo "Installing Debian package..."
|
|
|
|
|
@if [ "$$EUID" -ne 0 ]; then \
|
|
|
|
|
echo "Please run as root: sudo make deb-install"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@dpkg -i build/skyview_*.deb || (apt-get update && apt-get -f install -y)
|
|
|
|
|
|
|
|
|
|
deb-remove:
|
|
|
|
|
@echo "Removing Debian package..."
|
|
|
|
|
@if [ "$$EUID" -ne 0 ]; then \
|
|
|
|
|
echo "Please run as root: sudo make deb-remove"; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi
|
|
|
|
|
@dpkg -r skyview || true
|
|
|
|
|
|
|
|
|
|
# Docker/Podman targets
|
2025-08-23 22:09:37 +02:00
|
|
|
docker-build:
|
|
|
|
|
@echo "Building Docker image..."
|
|
|
|
|
docker build -t skyview .
|
|
|
|
|
|
|
|
|
|
podman-build:
|
|
|
|
|
@echo "Building Podman image..."
|
|
|
|
|
podman build -t skyview .
|
|
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
# Development targets
|
2025-08-23 22:09:37 +02:00
|
|
|
install-deps:
|
|
|
|
|
@echo "Installing Go dependencies..."
|
|
|
|
|
go mod tidy
|
|
|
|
|
|
2025-08-23 23:51:37 +02:00
|
|
|
format:
|
|
|
|
|
@echo "Formatting code..."
|
|
|
|
|
go fmt ./...
|
|
|
|
|
|
|
|
|
|
vet:
|
|
|
|
|
@echo "Running go vet..."
|
|
|
|
|
go vet ./...
|
|
|
|
|
|
|
|
|
|
# Combined quality check
|
|
|
|
|
check: format vet lint test
|
|
|
|
|
@echo "All checks passed!"
|
|
|
|
|
|
2025-08-23 22:09:37 +02:00
|
|
|
.DEFAULT_GOAL := build
|