// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package debian import ( "github.com/go-cmd/cmd" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) func AptInstall(pkgname string) (*cmd.Status, error) { cmd := []string{"apt-get", "install", "-y", pkgname} log.Info("Running:", cmd) return shell.RunRealtimeError(cmd) } func AptInstallOrExit(pkgname string) error { if _, err := AptInstall(pkgname); err != nil { return err } return nil } func AptRemove(pkgname string) (*cmd.Status, error) { if pkgname == "mirrors.wit.com" { return nil, nil } cmd := []string{"apt-get", "remove", "-y", pkgname} log.Info("Running:", cmd) return shell.RunRealtimeError(cmd) } func AptRemoveOrExit(pkgname string) error { if _, err := AptRemove(pkgname); err != nil { return err } return nil } // apt-get update \ // -o Dir::Etc::sourcelist=/etc/apt/sources.list.d/wit.list \ // -o Dir::Etc::sourceparts=/dev/null \ // -o APT::Get::List-Cleanup=0 func AptUpdate() error { cmd := []string{"apt-get", "update"} cmd = append(cmd, "-o", "Dir::Etc::sourcelist=/etc/apt/sources.list.d/wit.list") cmd = append(cmd, "-o", "Dir::Etc::sourceparts=/dev/null") cmd = append(cmd, "-o", "APT::Get::List-Cleanup=0") log.Info("Running:", cmd) if _, err := shell.RunRealtimeError(cmd); err != nil { return err } // if found := me.machine.FindInstalledByName("wit-tools"); found == nil { // AptInstall("wit-tools") // } return nil }