Disks tab: lsblk devices with partitions/usage/live IO, SMART via smartctl (standby-aware, self-tests, install button), ZFS pools/datasets/snapshots with scrub and snapshot-now

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Mitchell-Johnson
2026-09-17 22:48:08 -07:00
co-authored by Claude Fable 5.1
parent 724f30c02b
commit c704e87065
9 changed files with 1023 additions and 9 deletions
+14
View File
@@ -315,6 +315,20 @@ func (m *Manager) Upgrade(pkgs []string) (*tasks.Task, error) {
return m.start("apt-get upgrade "+strings.Join(pkgs, " "), args...)
}
// Install installs packages (used by other tabs for optional tooling like smartmontools).
func (m *Manager) Install(pkgs []string) (*tasks.Task, error) {
if len(pkgs) == 0 {
return nil, errors.New("no packages")
}
for _, p := range pkgs {
if !pkgNameRe.MatchString(p) {
return nil, errors.New("bad package name: " + p)
}
}
args := append([]string{"apt-get", "-y", "--no-install-recommends", "install"}, pkgs...)
return m.start("apt-get install "+strings.Join(pkgs, " "), args...)
}
func (m *Manager) Changelog(ctx context.Context, pkg string) (string, error) {
if !pkgNameRe.MatchString(pkg) {
return "", errors.New("bad package name")