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.
18 lines
383 B
Go
18 lines
383 B
Go
package statcollector
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestCollectorCompilation(t *testing.T) {
|
|
// Placeholder test to verify package compilation
|
|
logger := slog.New(slog.NewTextHandler(os.Stderr, nil))
|
|
collector := NewSystemCollector(logger)
|
|
if collector == nil {
|
|
t.Fatal("expected collector to be created")
|
|
}
|
|
t.Log("Collector package compiles successfully")
|
|
}
|