alpm

package
v0.22.2 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package alpm works with parts of Arch Linux packages.

Index

Constants

View Source
const PackageGlob = "-*.pkg.tar*"

PackageGlob is a glob that should only find packages.

View Source
const PackageRegex = `^([a-zA-Z.0-9_+-]+)-(\d.*-\d+)-(.*)\.pkg\.tar\..*$`

PackageRegex is a regex that matches MOST well-named packages.

The following groups are available:

Group 0 is the entire match
Group 1 is the name
Group 2 is the version-release
Group 3 is the arch

Variables

View Source
var DatabaseExtensions = []string{
	"db.tar",
	"db.tar.zst",
	"db.tar.xz",
	"db.tar.gz",
	"db.tar.bz2",
}

DatabaseExtensions is a list of filename extensions that should only match for valid databases.

View Source
var PackageExtensions = []string{
	"pkg.tar",
	"pkg.tar.zst",
	"pkg.tar.xz",
	"pkg.tar.gz",
	"pkg.tar.bz2",
}

PackageExtensions is a list of filename extensions that should only match for packages.

Functions

func HasDatabaseFormat

func HasDatabaseFormat(filename string) bool

HasDatabaseFormat returns true if the filename matches a pacman package format that we can do anything with.

Currently, only the following formats are supported:

	.db.tar.gz
 .db.tar.xz
 .db.tar.gz2
 .db.tar.zst

func HasPackageFormat

func HasPackageFormat(filename string) bool

HasPackageFormat returns true if the filename matches a pacman package format that we can do anything with.

Currently, only the following formats are supported:

.pkg.tar
.pkg.tar.xz
.pkg.tar.gz
.pkg.tar.bz2
.pkg.tar.zst

func VerCmp

func VerCmp(a, b string) int

VerCmp compares two version strings in a way mostly compatible to the Arch Linux vercmp utility.

Caveat: there is currently one break in compatibility: floating point releases are rounded down instead of being maintained. Please just don't.

The following is from the vercmp man page:

vercmp is used to determine the relationship between two given version
numbers. It outputs values as follows:

 < 0 : if ver1 < ver2
 = 0 : if ver1 == ver2
 > 0 : if ver1 > ver2

Version comparison operates as follows:

Alphanumeric:
 1.0a < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0 < 1.0.a < 1.0.1

Numeric:
 1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0

Additionally, version strings can have an epoch value defined that will
overrule any version comparison (unless the epoch values are equal). This is
specified in an epoch:version-rel format. For example, 2:1.0-1 is always
greater than 1:3.6-1.

Keep in mind that the pkgrel is only compared if it is available on both
versions given to this tool. For example, comparing 1.5-1 and 1.5 will yield
0; comparing 1.5-1 and 1.5-2 will yield < 0 as expected. This is mainly for
supporting versioned dependencies that do not include the pkgrel.

Types

This section is empty.

Jump to

Keyboard shortcuts

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