osutil – github.com/tredoe/osutil Index | Files | Directories

package osutil

import "github.com/tredoe/osutil"

Package osutil defines operating systems and detects the Linux distribution. Also, it handles basic operations in the management of packages in FreeBSD, Linux and macOs operating systems.

Index

Variables

var ListSystem = [...]System{FreeBSD, Linux, MacOS, Windows}

ListSystem is the list of allowed operating systems.

Functions

func SetupLogger

func SetupLogger(log, logShell *log.Logger)

SetupLogger setups the loggers used by some packages. 'log' is used by the packages 'edi', 'fileutil' and 'userutil'. 'logShell' is used by the packages 'executil' and 'pkg'.

func SystemFromGOOS

func SystemFromGOOS() (sys System, dist Distro, err error)

SystemFromGOOS returns the system from 'GOOS', and the distribution at Linux systems.

Types

type Distro

type Distro int

Distro represents a distribution of Linux system.

const (
	DistroUnknown Distro = iota

	Debian
	Ubuntu

	Fedora
	CentOS

	OpenSUSE

	Arch
	Manjaro
)

Most used Linux distributions.

func DetectDistro

func DetectDistro() (Distro, error)

DetectDistro returns the Linux distribution.

func (Distro) String

func (s Distro) String() string

type Manager

type Manager interface {
	// Install installs packages.
	Install(name ...string) error

	// Remove removes packages.
	Remove(name ...string) error

	// Purge removes packages and its configuration files.
	Purge(name ...string) error

	// Update resynchronizes the package index files from their sources.
	Update() error

	// Upgrade upgrades all the packages on the system.
	Upgrade() error

	// Clean erases both packages downloaded and orphaned dependencies.
	Clean() error
}

Manager is the common interface to handle different package systems.

func NewPkgFromSystem

func NewPkgFromSystem(sys System, dis Distro) Manager

NewPkgFromSystem returns the package manager used by a system.

func NewPkgFromType

func NewPkgFromType(pkg PackageType) Manager

NewPkgFromType returns the interface to handle the package manager.

type ManagerBrew

type ManagerBrew struct{}

ManagerBrew is the interface to handle the macOS package manager.

func (ManagerBrew) Clean

func (p ManagerBrew) Clean() error

func (ManagerBrew) Install

func (p ManagerBrew) Install(name ...string) error

func (ManagerBrew) Purge

func (p ManagerBrew) Purge(name ...string) error

func (ManagerBrew) Remove

func (p ManagerBrew) Remove(name ...string) error

func (ManagerBrew) Update

func (p ManagerBrew) Update() error

func (ManagerBrew) Upgrade

func (p ManagerBrew) Upgrade() error

type ManagerDeb

type ManagerDeb struct{}

ManagerDeb is the interface to handle the package manager of Linux systems based at Debian.

func (ManagerDeb) Clean

func (p ManagerDeb) Clean() error

func (ManagerDeb) Install

func (p ManagerDeb) Install(name ...string) error

func (ManagerDeb) Purge

func (p ManagerDeb) Purge(name ...string) error

func (ManagerDeb) Remove

func (p ManagerDeb) Remove(name ...string) error

func (ManagerDeb) Update

func (p ManagerDeb) Update() error

func (ManagerDeb) Upgrade

func (p ManagerDeb) Upgrade() error

type ManagerEbuild

type ManagerEbuild struct{}

ManagerEbuild is the interface to handle the package manager of Linux systems based at Gentoo.

func (ManagerEbuild) Clean

func (p ManagerEbuild) Clean() error

func (ManagerEbuild) Install

func (p ManagerEbuild) Install(name ...string) error

func (ManagerEbuild) Purge

func (p ManagerEbuild) Purge(name ...string) error

func (ManagerEbuild) Remove

func (p ManagerEbuild) Remove(name ...string) error

func (ManagerEbuild) Update

func (p ManagerEbuild) Update() error

func (ManagerEbuild) Upgrade

func (p ManagerEbuild) Upgrade() error

type ManagerPacman

type ManagerPacman struct{}

ManagerPacman is the interface to handle the package manager of Linux systems based at Arch.

func (ManagerPacman) Clean

func (p ManagerPacman) Clean() error

func (ManagerPacman) Install

func (p ManagerPacman) Install(name ...string) error

func (ManagerPacman) Purge

func (p ManagerPacman) Purge(name ...string) error

func (ManagerPacman) Remove

func (p ManagerPacman) Remove(name ...string) error

func (ManagerPacman) Update

func (p ManagerPacman) Update() error

func (ManagerPacman) Upgrade

func (p ManagerPacman) Upgrade() error

type ManagerPkg

type ManagerPkg struct{}

ManagerPkg is the interface to handle the FreeBSD package manager, called 'package' or 'pkg'.

func (ManagerPkg) Clean

func (p ManagerPkg) Clean() error

func (ManagerPkg) Install

func (p ManagerPkg) Install(name ...string) error

func (ManagerPkg) Purge

func (p ManagerPkg) Purge(name ...string) error

func (ManagerPkg) Remove

func (p ManagerPkg) Remove(name ...string) error

func (ManagerPkg) Update

func (p ManagerPkg) Update() error

func (ManagerPkg) Upgrade

func (p ManagerPkg) Upgrade() error

type ManagerRpm

type ManagerRpm struct{}

ManagerRpm is the interface to handle the package manager of Linux systems based at Red Hat.

func (ManagerRpm) Clean

func (p ManagerRpm) Clean() error

func (ManagerRpm) Install

func (p ManagerRpm) Install(name ...string) error

func (ManagerRpm) Purge

func (p ManagerRpm) Purge(name ...string) error

func (ManagerRpm) Remove

func (p ManagerRpm) Remove(name ...string) error

func (ManagerRpm) Update

func (p ManagerRpm) Update() error

func (ManagerRpm) Upgrade

func (p ManagerRpm) Upgrade() error

type ManagerZypp

type ManagerZypp struct{}

ManagerZypp is the interface to handle the package manager of Linux systems based at SUSE.

func (ManagerZypp) Clean

func (p ManagerZypp) Clean() error

func (ManagerZypp) Install

func (p ManagerZypp) Install(name ...string) error

func (ManagerZypp) Purge

func (p ManagerZypp) Purge(name ...string) error

func (ManagerZypp) Remove

func (p ManagerZypp) Remove(name ...string) error

func (ManagerZypp) Update

func (p ManagerZypp) Update() error

func (ManagerZypp) Upgrade

func (p ManagerZypp) Upgrade() error

type PackageType

type PackageType int8

PackageType represents a package management system.

const (
	// Linux
	Deb PackageType = iota + 1
	RPM
	Pacman
	Ebuild
	Zypp

	// BSD
	Brew
	Pkg
)

func Detect

func Detect() (PackageType, error)

Detect tries to get the package system used in the system, looking for executables in directories "/usr/bin" and "/usr/local/bin".

func (PackageType) String

func (pkg PackageType) String() string

type System

type System uint8

System represents an operating system.

const (
	SystemUndefined System = iota
	Linux
	FreeBSD
	MacOS
	Windows
)

The operating systems.

func (System) String

func (s System) String() string

Source Files

distro.go doc.go log.go p_brew.go p_deb.go p_ebuild.go p_pacman.go p_pkg.go p_rpm.go p_zypp.go pkg.go system.go

Directories

PathSynopsis
config
config/shconfPackage shconf implements a parser and scanner for the configuration in format shell-variable.
ediPackage edi allows edit files.
executilPackage executil lets to call to system commands.
fileutilPackage fileutil handles common operations in files.
internal
userutilPackage userutil provides access to UNIX users database in local files.
userutil/cryptPackage crypt provides interface for password crypt functions and collects common constants.
userutil/crypt/apr1_cryptPackage apr1_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD, and modified by the Apache project.
userutil/crypt/commonPackage common contains routines used by multiple password hashing algorithms.
userutil/crypt/md5_cryptPackage md5_crypt implements the standard Unix MD5-crypt algorithm created by Poul-Henning Kamp for FreeBSD.
userutil/crypt/sha256_cryptPackage sha256_crypt implements Ulrich Drepper's SHA256-crypt password hashing algorithm.
userutil/crypt/sha512_cryptPackage sha512_crypt implements Ulrich Drepper's SHA512-crypt password hashing algorithm.
Version
v1.1.7
Published
Aug 3, 2021
Platform
js/wasm
Imports
9 packages
Last checked
now

Tools for package owners.