hdmistat/Makefile
sneak 402c0797d5 Initial implementation of hdmistat - Linux framebuffer system stats display
Features:
- Beautiful system statistics display using IBM Plex Mono font
- Direct framebuffer rendering without X11/Wayland
- Multiple screens with automatic carousel rotation
- Real-time system monitoring (CPU, memory, disk, network, processes)
- Systemd service integration with install command
- Clean architecture using uber/fx dependency injection

Architecture:
- Cobra CLI with daemon, install, status, and info commands
- Modular design with separate packages for display, rendering, and stats
- Font embedding for zero runtime dependencies
- Layout API for clean text rendering
- Support for multiple screen types (overview, top CPU, top memory)

Technical details:
- Uses gopsutil for cross-platform system stats collection
- Direct Linux framebuffer access via memory mapping
- Anti-aliased text rendering with freetype
- Configurable screen rotation and update intervals
- Structured logging with slog
- Comprehensive test coverage and linting setup

This initial version provides a solid foundation for displaying rich
system information on resource-constrained devices like Raspberry Pis.
2025-07-23 12:55:42 +02:00

38 lines
459 B
Makefile

.PHONY: all build test fmt lint clean install
all: fmt lint test build
build:
go build -o hdmistat ./cmd/hdmistat
test: fmt lint
go test -v ./...
fmt:
go fmt ./...
lint:
golangci-lint run
clean:
rm -f hdmistat
go clean
install: build
sudo cp hdmistat /usr/local/bin/
# Development helpers
.PHONY: run run-daemon
run: build
./hdmistat
run-daemon: build
sudo ./hdmistat daemon
# Dependencies
.PHONY: deps
deps:
go mod download
go mod tidy