- Implement comprehensive database package with versioned migrations - Add skyview-data CLI tool for managing aviation reference data - Integrate database with merger for real-time aircraft history persistence - Support OurAirports and OpenFlights data sources (runtime loading) - Add systemd timer for automated database updates - Fix transaction-based bulk loading for 2400% performance improvement - Add callsign enhancement system with airline/airport lookups - Update Debian packaging with database directory and permissions Database features: - Aircraft position history with configurable retention - External aviation data loading (airlines, airports) - Callsign parsing and enhancement - API client for external lookups (OpenSky, etc.) - Privacy mode for complete offline operation CLI commands: - skyview-data status: Show database statistics - skyview-data update: Load aviation reference data - skyview-data list: Show available data sources - skyview-data clear: Remove specific data sources 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
108 lines
No EOL
2.4 KiB
Makefile
108 lines
No EOL
2.4 KiB
Makefile
PACKAGE_NAME=skyview
|
|
BUILD_DIR=build
|
|
VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev")
|
|
LDFLAGS=-w -s -X main.version=$(VERSION)
|
|
|
|
.PHONY: build build-all clean run dev test lint deb deb-clean install-deps
|
|
|
|
# Build main skyview binary
|
|
build:
|
|
@echo "Building skyview..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/skyview ./cmd/skyview
|
|
|
|
# Build beast-dump utility binary
|
|
build-beast-dump:
|
|
@echo "Building beast-dump..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/beast-dump ./cmd/beast-dump
|
|
|
|
# Build skyview-data database management binary
|
|
build-skyview-data:
|
|
@echo "Building skyview-data..."
|
|
@mkdir -p $(BUILD_DIR)
|
|
go build -ldflags="$(LDFLAGS)" -o $(BUILD_DIR)/skyview-data ./cmd/skyview-data
|
|
|
|
# Build all binaries
|
|
build-all: build build-beast-dump build-skyview-data
|
|
@echo "Built all binaries successfully:"
|
|
@ls -la $(BUILD_DIR)/
|
|
|
|
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..."
|
|
go run ./cmd/skyview
|
|
|
|
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
|
|
|
|
# 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
|
|
docker-build:
|
|
@echo "Building Docker image..."
|
|
docker build -t skyview .
|
|
|
|
podman-build:
|
|
@echo "Building Podman image..."
|
|
podman build -t skyview .
|
|
|
|
# Development targets
|
|
install-deps:
|
|
@echo "Installing Go dependencies..."
|
|
go mod tidy
|
|
|
|
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!"
|
|
|
|
.DEFAULT_GOAL := build-all
|