Documentation ΒΆ
Overview ΒΆ
Package nfpm provides ways to package programs in some linux packaging formats.
Index ΒΆ
- func ClearPackagers()
- func RegisterPackager(format string, p Packager)
- func Validate(info *Info) (err error)
- type APK
- type APKScripts
- type APKSignature
- type Config
- type Deb
- type DebScripts
- type DebSignature
- type DebTriggers
- type ErrFieldEmpty
- type ErrNoPackager
- type ErrSigningFailure
- type Info
- type Overridables
- type PackageSignature
- type Packager
- type RPM
- type RPMScripts
- type RPMSignature
- type Scripts
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
func ClearPackagers ΒΆ
func ClearPackagers()
ClearPackagers clear all registered packagers, used for testing.
func RegisterPackager ΒΆ
RegisterPackager a new packager for the given format.
Types ΒΆ
type APK ΒΆ
type APK struct { Arch string `yaml:"arch,omitempty" jsonschema:"title=architecture in apk nomenclature"` Signature APKSignature `yaml:"signature,omitempty" jsonschema:"title=apk signature"` Scripts APKScripts `yaml:"scripts,omitempty" jsonschema:"title=apk scripts"` }
type APKScripts ΒΆ added in v2.5.0
type APKSignature ΒΆ
type APKSignature struct { PackageSignature `yaml:",inline"` // defaults to <maintainer email>.rsa.pub KeyName string `yaml:"key_name,omitempty" jsonschema:"title=key name,example=origin,default=maintainer_email.rsa.pub"` }
type Config ΒΆ
type Config struct { Info `yaml:",inline"` Overrides map[string]Overridables `` /* 155-byte string literal not displayed */ // contains filtered or unexported fields }
Config contains the top level configuration for packages.
func ParseFileWithEnvMapping ΒΆ added in v2.4.0
ParseFileWithEnvMapping decodes YAML data from a file path into a configuration struct.
func ParseWithEnvMapping ΒΆ added in v2.4.0
ParseWithEnvMapping decodes YAML data from an io.Reader into a configuration struct.
type Deb ΒΆ
type Deb struct { Arch string `yaml:"arch,omitempty" jsonschema:"title=architecture in deb nomenclature"` Scripts DebScripts `yaml:"scripts,omitempty" jsonschema:"title=scripts"` Triggers DebTriggers `yaml:"triggers,omitempty" jsonschema:"title=triggers"` Breaks []string `yaml:"breaks,omitempty" jsonschema:"title=breaks"` Signature DebSignature `yaml:"signature,omitempty" jsonschema:"title=signature"` Compression string `yaml:"compression,omitempty" jsonschema:"title=compression algorithm to be used,enum=gzip,enum=xz,enum=none,default=gzip"` }
Deb is custom configs that are only available on deb packages.
type DebScripts ΒΆ
type DebScripts struct { Rules string `yaml:"rules,omitempty" jsonschema:"title=rules"` Templates string `yaml:"templates,omitempty" jsonschema:"title=templates"` Config string `yaml:"config,omitempty" jsonschema:"title=config"` }
DebScripts is scripts only available on deb packages.
type DebSignature ΒΆ
type DebSignature struct { PackageSignature `yaml:",inline"` // origin, maint or archive (defaults to origin) Type string `yaml:"type,omitempty" jsonschema:"title=signer role,enum=origin,enum=maint,enum=archive,default=origin"` }
type DebTriggers ΒΆ
type DebTriggers struct { Interest []string `yaml:"interest,omitempty" jsonschema:"title=interest"` InterestAwait []string `yaml:"interest_await,omitempty" jsonschema:"title=interest await"` InterestNoAwait []string `yaml:"interest_noawait,omitempty" jsonschema:"title=interest noawait"` Activate []string `yaml:"activate,omitempty" jsonschema:"title=activate"` ActivateAwait []string `yaml:"activate_await,omitempty" jsonschema:"title=activate await"` ActivateNoAwait []string `yaml:"activate_noawait,omitempty" jsonschema:"title=activate noawait"` }
DebTriggers contains triggers only available for deb packages. https://wiki.debian.org/DpkgTriggers https://man7.org/linux/man-pages/man5/deb-triggers.5.html
type ErrFieldEmpty ΒΆ
type ErrFieldEmpty struct {
// contains filtered or unexported fields
}
ErrFieldEmpty happens when some required field is empty.
func (ErrFieldEmpty) Error ΒΆ
func (e ErrFieldEmpty) Error() string
type ErrNoPackager ΒΆ
type ErrNoPackager struct {
// contains filtered or unexported fields
}
ErrNoPackager happens when no packager is registered for the given format.
func (ErrNoPackager) Error ΒΆ
func (e ErrNoPackager) Error() string
type ErrSigningFailure ΒΆ
type ErrSigningFailure struct {
Err error
}
ErrSigningFailure is returned whenever something went wrong during the package signing process. The underlying error can be unwrapped and could be crypto-related or something that occurred while adding the signature to the package.
func (*ErrSigningFailure) Error ΒΆ
func (s *ErrSigningFailure) Error() string
func (*ErrSigningFailure) Unwarp ΒΆ
func (s *ErrSigningFailure) Unwarp() error
type Info ΒΆ
type Info struct { Overridables `yaml:",inline"` Name string `yaml:"name" jsonschema:"title=package name"` Arch string `yaml:"arch" jsonschema:"title=target architecture,example=amd64"` Platform string `yaml:"platform,omitempty" jsonschema:"title=target platform,example=linux,default=linux"` Epoch string `yaml:"epoch,omitempty" jsonschema:"title=version epoch,example=2,default=extracted from version"` Version string `yaml:"version" jsonschema:"title=version,example=v1.0.2,example=2.0.1"` VersionSchema string `yaml:"version_schema,omitempty" jsonschema:"title=version schema,enum=semver,enum=none,default=semver"` Release string `yaml:"release,omitempty" jsonschema:"title=version release,example=1"` Prerelease string `yaml:"prerelease,omitempty" jsonschema:"title=version prerelease,default=extracted from version"` VersionMetadata string `yaml:"version_metadata,omitempty" jsonschema:"title=version metadata,example=git"` Section string `yaml:"section,omitempty" jsonschema:"title=package section,example=default"` Priority string `yaml:"priority,omitempty" jsonschema:"title=package priority,example=extra"` Maintainer string `yaml:"maintainer,omitempty" jsonschema:"title=package maintainer,example=me@example.com"` Description string `yaml:"description,omitempty" jsonschema:"title=package description"` Vendor string `yaml:"vendor,omitempty" jsonschema:"title=package vendor,example=MyCorp"` Homepage string `yaml:"homepage,omitempty" jsonschema:"title=package homepage,example=https://example.com"` License string `yaml:"license,omitempty" jsonschema:"title=package license,example=MIT"` Changelog string `` /* 156-byte string literal not displayed */ DisableGlobbing bool `yaml:"disable_globbing,omitempty" jsonschema:"title=wether to disable file globbing,default=false"` Target string `yaml:"-"` }
Info contains information about a single package.
func WithDefaults ΒΆ
WithDefaults set some sane defaults into the given Info.
func (*Info) GetChangeLog ΒΆ
func (i *Info) GetChangeLog() (log *chglog.PackageChangeLog, err error)
GetChangeLog parses the provided changelog file.
type Overridables ΒΆ
type Overridables struct { Replaces []string `yaml:"replaces,omitempty" jsonschema:"title=replaces directive,example=nfpm"` Provides []string `yaml:"provides,omitempty" jsonschema:"title=provides directive,example=nfpm"` Depends []string `yaml:"depends,omitempty" jsonschema:"title=depends directive,example=nfpm"` Recommends []string `yaml:"recommends,omitempty" jsonschema:"title=recommends directive,example=nfpm"` Suggests []string `yaml:"suggests,omitempty" jsonschema:"title=suggests directive,example=nfpm"` Conflicts []string `yaml:"conflicts,omitempty" jsonschema:"title=conflicts directive,example=nfpm"` Contents files.Contents `yaml:"contents,omitempty" jsonschema:"title=files to add to the package"` EmptyFolders []string `` /* 127-byte string literal not displayed */ Scripts Scripts `yaml:"scripts,omitempty" jsonschema:"title=scripts to execute"` RPM RPM `yaml:"rpm,omitempty" jsonschema:"title=rpm-specific settings"` Deb Deb `yaml:"deb,omitempty" jsonschema:"title=deb-specific settings"` APK APK `yaml:"apk,omitempty" jsonschema:"title=apk-specific settings"` }
Overridables contain the field which are overridable in a package.
type PackageSignature ΒΆ added in v2.2.3
type PackageSignature struct { // PGP secret key, can be ASCII-armored KeyFile string `yaml:"key_file,omitempty" jsonschema:"title=key file,example=key.gpg"` KeyID *string `yaml:"key_id,omitempty" jsonschema:"title=key id,example=bc8acdd415bd80b3"` KeyPassphrase string `yaml:"-"` // populated from environment variable }
type Packager ΒΆ
type Packager interface { Package(info *Info, w io.Writer) error ConventionalFileName(info *Info) string }
Packager represents any packager implementation.
type RPM ΒΆ
type RPM struct { Arch string `yaml:"arch,omitempty" jsonschema:"title=architecture in rpm nomenclature"` Scripts RPMScripts `yaml:"scripts,omitempty" jsonschema:"title=rpm-specific scripts"` Group string `yaml:"group,omitempty" jsonschema:"title=package group,example=Unspecified"` Summary string `yaml:"summary,omitempty" jsonschema:"title=package summary"` Compression string `yaml:"compression,omitempty" jsonschema:"title=compression algorithm to be used,enum=gzip,enum=lzma,enum=xz,default=gzip"` Signature RPMSignature `yaml:"signature,omitempty" jsonschema:"title=rpm signature"` }
RPM is custom configs that are only available on RPM packages.
type RPMScripts ΒΆ added in v2.5.0
type RPMScripts struct { PreTrans string `yaml:"pretrans,omitempty" jsonschema:"title=pretrans script"` PostTrans string `yaml:"posttrans,omitempty" jsonschema:"title=posttrans script"` }
RPMScripts represents scripts only available on RPM packages.
type RPMSignature ΒΆ
type RPMSignature struct {
PackageSignature `yaml:",inline"`
}
type Scripts ΒΆ
type Scripts struct { PreInstall string `yaml:"preinstall,omitempty" jsonschema:"title=pre install"` PostInstall string `yaml:"postinstall,omitempty" jsonschema:"title=post install"` PreRemove string `yaml:"preremove,omitempty" jsonschema:"title=pre remove"` PostRemove string `yaml:"postremove,omitempty" jsonschema:"title=post remove"` }
Scripts contains information about maintainer scripts for packages.
Directories ΒΆ
Path | Synopsis |
---|---|
Package apk implements nfpm.Packager providing .apk bindings.
|
Package apk implements nfpm.Packager providing .apk bindings. |
cmd
|
|
Package deb implements nfpm.Packager providing .deb bindings.
|
Package deb implements nfpm.Packager providing .deb bindings. |
Package deprecation provides centralized deprecation notice messaging for nfpm.
|
Package deprecation provides centralized deprecation notice messaging for nfpm. |
internal
|
|
cmd
Package cmd contains the main nfpm cli source code.
|
Package cmd contains the main nfpm cli source code. |
glob
Package glob provides file globbing for use in nfpm.Packager implementations
|
Package glob provides file globbing for use in nfpm.Packager implementations |
Package rpm implements nfpm.Packager providing .rpm bindings using google/rpmpack.
|
Package rpm implements nfpm.Packager providing .rpm bindings using google/rpmpack. |