Three-tab Bubble Tea TUI (Setup / Manage / Monitor) for setting up and running a headless Jellyfin server over SSH: - Setup: install/uninstall Jellyfin, add media drives (single or btrfs RAID pool), import an existing detached btrfs pool non-destructively, firewall, move Jellyfin storage onto a media drive - Boot-drive-safe drive classifier (walks LUKS/LVM/RAID to the physical disk; never offers a disk hosting /, /boot or swap) - Keep-existing-filesystem path previews on-disk content, skips starter folders when content exists, and grants Jellyfin recursive read access - Manage: copy from external drives, mount/eject, rename/delete - Monitor: per-core CPU, load/mem/uptime, btrfs error counters, SMART Single static binary; installs to /usr/local/bin so sudo can find it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
13 lines
428 B
Go
13 lines
428 B
Go
// Package step defines a single canonical "labelled command" type that the
|
|
// install / mount / firewall packages all return, and that the TUI feeds to
|
|
// tea.ExecProcess one entry at a time.
|
|
package step
|
|
|
|
import "os/exec"
|
|
|
|
// Step is one logical action of a multi-step plan — a human-readable Title
|
|
// shown in the TUI's progress view, plus the command actually executed.
|
|
type Step struct {
|
|
Title string
|
|
Cmd *exec.Cmd
|
|
}
|