diff options
Diffstat (limited to 'MACOS.md')
| -rw-r--r-- | MACOS.md | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/MACOS.md b/MACOS.md deleted file mode 100644 index ba6efda..0000000 --- a/MACOS.md +++ /dev/null @@ -1,71 +0,0 @@ -# macOS Support for Loadbars - -## What was implemented - -Loadbars now fully supports macOS with automatic window activation built into the binary. - -### Changes made: - -1. **Script embedding** - Both Linux and Darwin monitoring scripts are embedded in the binary -2. **OS detection** - Automatically uses the correct script based on the host: - - `localhost` on macOS → Darwin script (sysctl, vm_stat, netstat, iostat) - - `localhost` on Linux → Linux script (/proc filesystem) - - All remote hosts → Linux script (assumes remote servers are Linux) -3. **Window activation** - macOS-specific code automatically brings SDL window to foreground - - Uses build tags (`activate_darwin.go` and `activate.go`) - - No external helper script needed - -## Usage on macOS - -Simply run the binary directly: - -```bash -# Monitor localhost -./loadbars --showcores --showmem --shownet - -# Monitor remote Linux servers -./loadbars server1.example.com server2.example.com --showcores - -# Monitor both localhost and remotes -./loadbars localhost server1.example.com server2.example.com --showcores -``` - -The window will automatically appear in the foreground. - -## Building on macOS - -Requirements: -```bash -brew install sdl2 -``` - -Build: -```bash -mage build -# or -go build -o loadbars ./cmd/loadbars -``` - -## Technical details - -### Script selection logic -- `internal/collector/script.go` - Embeds both scripts -- `internal/collector/collector.go` - Selects script based on host: - - For localhost: checks if `/proc` exists to determine Linux vs macOS - - For remote hosts: always uses Linux script - -### Window activation -- `internal/display/activate_darwin.go` - macOS-specific activation using `open -a` -- `internal/display/activate.go` - No-op for other platforms -- Called automatically after SDL window creation - -### Darwin monitoring script -- Uses macOS native tools: `sysctl`, `vm_stat`, `netstat -ibn`, `iostat` -- Outputs same protocol format as Linux script (M LOADAVG, M MEMSTATS, etc.) -- Limitations: No per-core CPU stats on macOS (iostat limitation) - -## Known limitations - -- Remote macOS hosts are not supported (assumes all remote hosts are Linux) -- macOS script doesn't provide per-core CPU statistics (iostat limitation) -- Swap usage on macOS always shows 0 (macOS uses compressed memory differently) |
