Documentation
¶
Overview ¶
Package sudo provides support for various methods of running commands with elevated privileges.
Index ¶
- Variables
- func Doas(cmd string) string
- func Noop(cmd string) string
- func RegisterDoas(repository *Provider)
- func RegisterSudo(repository *Provider)
- func RegisterUID0Noop(repository *Provider)
- func RegisterWindowsNoop(repository *Provider)
- func Sudo(cmd string) string
- type Factory
- type Provider
- type Service
- type SudoProvider
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNoSudo is returned when no supported sudo method is found. ErrNoSudo = errors.New("no supported sudo method found") // DefaultProvider is the default sudo repository. DefaultProvider = sync.OnceValue(func() *Provider { provider := NewProvider() RegisterWindowsNoop(provider) RegisterUID0Noop(provider) RegisterSudo(provider) RegisterDoas(provider) return provider }) )
Functions ¶
func RegisterDoas ¶
func RegisterDoas(repository *Provider)
RegisterDoas registers a doas DecorateFunc with the given repository.
func RegisterSudo ¶
func RegisterSudo(repository *Provider)
RegisterSudo registers a sudo DecorateFunc with the given repository.
func RegisterUID0Noop ¶
func RegisterUID0Noop(repository *Provider)
RegisterUID0Noop registers a noop DecorateFunc with the given repository which can be used when the user is root.
func RegisterWindowsNoop ¶
func RegisterWindowsNoop(repository *Provider)
RegisterWindowsNoop registers a noop DecorateFunc with the given repository if the user is root.
Types ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service provides a unified interface to interact with different package managers. It ensures that a suitable package manager is lazily initialized and made available for package operations. It supports operations like installation, removal, and updating of packages via the PackageManager interface.
func NewSudoService ¶
func NewSudoService(provider SudoProvider, runner cmd.Runner) *Service
NewSudoService creates a new instance of SudoService with the provided SudoProvider and runner.
func (*Service) GetSudoRunner ¶
GetSudoRunner returns an cmd.Runner with a sudo decorator or an error if the decorator could not be initialized.
func (*Service) SudoRunner ¶
SudoRunner returns an cmd.Runner with a sudo decorator. If the runner initialization failed, an error runner is returned which will return the initialization error on every operation that is attempted on it.