commands

package
v0.0.0-...-b9bb202 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2024 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Overview

Package commands contains an interface which returns common package-manager related commands and the reference implementation for apt and yum-based systems.

Index

Constants

View Source
const (
	// AptConfFilePath is the full file path for the proxy settings that are
	// written by cloud-init and the machine environ worker.
	AptConfFilePath = "/etc/apt/apt.conf.d/95-juju-proxy-settings"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type PackageCommander

type PackageCommander interface {
	// InstallPrerequisiteCmd returns the command that installs the
	// prerequisite package for repository-handling operations.
	InstallPrerequisiteCmd() string

	// UpdateCmd returns the command to update the local package list.
	UpdateCmd() string

	// UpgradeCmd returns the command which issues an upgrade on all packages
	// with available newer versions.
	UpgradeCmd() string

	// InstallCmd returns a *single* command that installs the given package(s).
	InstallCmd(...string) string

	// RemoveCmd returns a *single* command that removes the given package(s).
	RemoveCmd(...string) string

	// PurgeCmd returns the command that removes the given package(s) along
	// with any associated config files.
	PurgeCmd(...string) string

	// IsInstalledCmd returns the command which determines whether or not a
	// package is currently installed on the system.
	IsInstalledCmd(string) string

	// SearchCmd returns the command that determines whether the given package is
	// available for installation from the currently configured repositories.
	SearchCmd(string) string

	// ListAvailableCmd returns the command which will list all packages
	// available for installation from the currently configured repositories.
	// NOTE: includes already installed packages.
	ListAvailableCmd() string

	// ListInstalledCmd returns the command which will list all
	// packages currently installed on the system.
	ListInstalledCmd() string

	// ListRepositoriesCmd returns the command that lists all repositories
	// currently configured on the system.
	// NOTE: requires the prerequisite package whose installation command
	// is given by InstallPrerequisiteCmd().
	ListRepositoriesCmd() string

	// AddRepositoryCmd returns the command that adds a repository to the
	// list of available repositories.
	// NOTE: requires the prerequisite package whose installation command
	// is given by InstallPrerequisiteCmd().
	AddRepositoryCmd(string) string

	// RemoveRepositoryCmd returns the command that removes a given
	// repository from the list of available repositories.
	// NOTE: requires the prerequisite package whose installation command
	// is given by InstallPrerequisiteCmd().
	RemoveRepositoryCmd(string) string

	// CleanupCmd returns the command that cleans up all orphaned packages,
	// left-over files and previously-cached packages.
	CleanupCmd() string

	// GetProxyCmd returns the command which outputs the proxies set for the
	// given package management system.
	// NOTE: output may require some additional filtering.
	GetProxyCmd() string

	// SetMirrorCommands returns the commands to update the package archive and security mirrors.
	SetMirrorCommands(string, string) []string

	// ProxyConfigContents returns the format expected by the package manager
	// for proxy settings which can be written directly to the config file.
	ProxyConfigContents(proxy.Settings) string

	// SetProxyCmds returns the commands which write the proxy configuration
	// to the configuration file of the package manager.
	SetProxyCmds(proxy.Settings) []string
}

PackageCommander is the interface which provides runnable shell commands for various packaging-related operations.

func NewAptPackageCommander

func NewAptPackageCommander() PackageCommander

NewAptPackageCommander returns a PackageCommander for apt-based systems.

func NewSnapPackageCommander

func NewSnapPackageCommander() PackageCommander

NewSnapPackageCommander returns a PackageCommander for snap-based systems.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL