Documentation ΒΆ
Overview ΒΆ
Package nfpm provides ways to package programs in some linux packaging formats.
Index ΒΆ
- func ClearPackagers()
- func Enumerate() []string
- func PrepareForPackager(info *Info, packager string) (err error)
- func RegisterPackager(format string, p Packager)
- func Validate(info *Info) (err error)
- type APK
- type APKScripts
- type APKSignature
- type ArchLinux
- type ArchLinuxScripts
- type Config
- type Deb
- type DebScripts
- type DebSignature
- type DebTriggers
- type ErrFieldEmpty
- type ErrNoPackager
- type ErrSigningFailure
- type IPK
- type IPKAlternative
- type Info
- type Overridables
- type PackageSignature
- type Packager
- type PackagerWithExtension
- 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 Enumerate ΒΆ added in v2.37.0
func Enumerate() []string
Enumerate lists the available packagers
func PrepareForPackager ΒΆ added in v2.27.0
PrepareForPackager validates the configuration for the given packager and prepares the contents for said packager.
func RegisterPackager ΒΆ
RegisterPackager a new packager for the given format.
Types ΒΆ
type APK ΒΆ
type APK struct { Arch string `yaml:"arch,omitempty" json:"arch,omitempty" jsonschema:"title=architecture in apk nomenclature"` Signature APKSignature `yaml:"signature,omitempty" json:"signature,omitempty" jsonschema:"title=apk signature"` Scripts APKScripts `yaml:"scripts,omitempty" json:"scripts,omitempty" jsonschema:"title=apk scripts"` }
type APKScripts ΒΆ added in v2.5.0
type APKSignature ΒΆ
type APKSignature struct { PackageSignature `yaml:",inline" json:",inline"` // defaults to <maintainer email>.rsa.pub KeyName string `` /* 127-byte string literal not displayed */ }
type ArchLinux ΒΆ added in v2.20.0
type ArchLinux struct { Pkgbase string `` /* 147-byte string literal not displayed */ Arch string `yaml:"arch,omitempty" json:"arch,omitempty" jsonschema:"title=architecture in archlinux nomenclature"` Packager string `yaml:"packager,omitempty" json:"packager,omitempty" jsonschema:"title=organization that packaged the software"` Scripts ArchLinuxScripts `yaml:"scripts,omitempty" json:"scripts,omitempty" jsonschema:"title=archlinux-specific scripts"` }
type ArchLinuxScripts ΒΆ added in v2.20.0
type Config ΒΆ
type Config struct { Info `yaml:",inline" json:",inline"` Overrides map[string]*Overridables `` /* 182-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" json:"arch,omitempty" jsonschema:"title=architecture in deb nomenclature"` Scripts DebScripts `yaml:"scripts,omitempty" json:"scripts,omitempty" jsonschema:"title=scripts"` Triggers DebTriggers `yaml:"triggers,omitempty" json:"triggers,omitempty" jsonschema:"title=triggers"` Breaks []string `yaml:"breaks,omitempty" json:"breaks,omitempty" jsonschema:"title=breaks"` Signature DebSignature `yaml:"signature,omitempty" json:"signature,omitempty" jsonschema:"title=signature"` Compression string `` /* 150-byte string literal not displayed */ Fields map[string]string `yaml:"fields,omitempty" json:"fields,omitempty" jsonschema:"title=fields"` Predepends []string `yaml:"predepends,omitempty" json:"predepends,omitempty" jsonschema:"title=predepends directive,example=nfpm"` }
Deb is custom configs that are only available on deb packages.
type DebScripts ΒΆ
type DebScripts struct { Rules string `yaml:"rules,omitempty" json:"rules,omitempty" jsonschema:"title=rules"` Templates string `yaml:"templates,omitempty" json:"templates,omitempty" jsonschema:"title=templates"` Config string `yaml:"config,omitempty" json:"config,omitempty" jsonschema:"title=config"` }
DebScripts is scripts only available on deb packages.
type DebSignature ΒΆ
type DebSignature struct { PackageSignature `yaml:",inline" json:",inline"` // debsign, or dpkg-sig (defaults to debsign) Method string `yaml:"method,omitempty" json:"method,omitempty" jsonschema:"title=method role,enum=debsign,enum=dpkg-sig,default=debsign"` // origin, maint or archive (defaults to origin) Type string `yaml:"type,omitempty" json:"type,omitempty" jsonschema:"title=signer role,enum=origin,enum=maint,enum=archive,default=origin"` Signer string `yaml:"signer,omitempty" json:"signer,omitempty" jsonschema:"title=signer"` }
type DebTriggers ΒΆ
type DebTriggers struct { Interest []string `yaml:"interest,omitempty" json:"interest,omitempty" jsonschema:"title=interest"` InterestAwait []string `yaml:"interest_await,omitempty" json:"interest_await,omitempty" jsonschema:"title=interest await"` InterestNoAwait []string `yaml:"interest_noawait,omitempty" json:"interest_noawait,omitempty" jsonschema:"title=interest noawait"` Activate []string `yaml:"activate,omitempty" json:"activate,omitempty" jsonschema:"title=activate"` ActivateAwait []string `yaml:"activate_await,omitempty" json:"activate_await,omitempty" jsonschema:"title=activate await"` ActivateNoAwait []string `yaml:"activate_noawait,omitempty" json:"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 IPK ΒΆ added in v2.37.0
type IPK struct { ABIVersion string `yaml:"abi_version,omitempty" json:"abi_version,omitempty" jsonschema:"title=abi version"` Alternatives []IPKAlternative `yaml:"alternatives,omitempty" json:"alternatives,omitempty" jsonschema:"title=alternatives"` Arch string `yaml:"arch,omitempty" json:"arch,omitempty" jsonschema:"title=architecture in deb nomenclature"` AutoInstalled bool `yaml:"auto_installed,omitempty" json:"auto_installed,omitempty" jsonschema:"title=auto installed,default=false"` Essential bool `yaml:"essential,omitempty" json:"essential,omitempty" jsonschema:"title=whether package is essential,default=false"` Fields map[string]string `yaml:"fields,omitempty" json:"fields,omitempty" jsonschema:"title=fields"` Predepends []string `yaml:"predepends,omitempty" json:"predepends,omitempty" jsonschema:"title=predepends directive,example=nfpm"` Tags []string `yaml:"tags,omitempty" json:"tags,omitempty" jsonschema:"title=tags"` }
IPK is custom configs that are only available on deb packages.
type IPKAlternative ΒΆ added in v2.37.0
type IPKAlternative struct { Priority int `yaml:"priority,omitempty" json:"priority,omitempty" jsonschema:"title=priority"` Target string `yaml:"target,omitempty" json:"target,omitempty" jsonschema:"title=target"` LinkName string `yaml:"link_name,omitempty" json:"link_name,omitempty" jsonschema:"title=link name"` }
IPKAlternative represents an alternative for an IPK package.
type Info ΒΆ
type Info struct { Overridables `yaml:",inline" json:",inline"` Name string `yaml:"name" json:"name" jsonschema:"title=package name"` Arch string `yaml:"arch" json:"arch" jsonschema:"title=target architecture,example=amd64"` Platform string `yaml:"platform,omitempty" json:"platform,omitempty" jsonschema:"title=target platform,example=linux,default=linux"` Epoch string `yaml:"epoch,omitempty" json:"epoch,omitempty" jsonschema:"title=version epoch,example=2,default=extracted from version"` Version string `yaml:"version" json:"version" jsonschema:"title=version,example=v1.0.2,example=2.0.1"` VersionSchema string `` /* 134-byte string literal not displayed */ Release string `yaml:"release,omitempty" json:"release,omitempty" jsonschema:"title=version release,example=1"` Prerelease string `yaml:"prerelease,omitempty" json:"prerelease,omitempty" jsonschema:"title=version prerelease,default=extracted from version"` VersionMetadata string `yaml:"version_metadata,omitempty" json:"version_metadata,omitempty" jsonschema:"title=version metadata,example=git"` Section string `yaml:"section,omitempty" json:"section,omitempty" jsonschema:"title=package section,example=default"` Priority string `yaml:"priority,omitempty" json:"priority,omitempty" jsonschema:"title=package priority,example=extra"` Maintainer string `yaml:"maintainer,omitempty" json:"maintainer,omitempty" jsonschema:"title=package maintainer,example=me@example.com"` Description string `yaml:"description,omitempty" json:"description,omitempty" jsonschema:"title=package description"` Vendor string `yaml:"vendor,omitempty" json:"vendor,omitempty" jsonschema:"title=package vendor,example=MyCorp"` Homepage string `yaml:"homepage,omitempty" json:"homepage,omitempty" jsonschema:"title=package homepage,example=https://example.com"` License string `yaml:"license,omitempty" json:"license,omitempty" jsonschema:"title=package license,example=MIT"` Changelog string `` /* 183-byte string literal not displayed */ DisableGlobbing bool `` /* 133-byte string literal not displayed */ MTime time.Time `yaml:"mtime,omitempty" json:"mtime,omitempty" jsonschema:"title=time to set into the files generated by nFPM"` Target string `yaml:"-" json:"-"` }
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" json:"replaces,omitempty" jsonschema:"title=replaces directive,example=nfpm"` Provides []string `yaml:"provides,omitempty" json:"provides,omitempty" jsonschema:"title=provides directive,example=nfpm"` Depends []string `yaml:"depends,omitempty" json:"depends,omitempty" jsonschema:"title=depends directive,example=nfpm"` Recommends []string `yaml:"recommends,omitempty" json:"recommends,omitempty" jsonschema:"title=recommends directive,example=nfpm"` Suggests []string `yaml:"suggests,omitempty" json:"suggests,omitempty" jsonschema:"title=suggests directive,example=nfpm"` Conflicts []string `yaml:"conflicts,omitempty" json:"conflicts,omitempty" jsonschema:"title=conflicts directive,example=nfpm"` Contents files.Contents `yaml:"contents,omitempty" json:"contents,omitempty" jsonschema:"title=files to add to the package"` Umask os.FileMode `yaml:"umask,omitempty" json:"umask,omitempty" jsonschema:"title=umask for file contents,example=112"` Scripts Scripts `yaml:"scripts,omitempty" json:"scripts,omitempty" jsonschema:"title=scripts to execute"` RPM RPM `yaml:"rpm,omitempty" json:"rpm,omitempty" jsonschema:"title=rpm-specific settings"` Deb Deb `yaml:"deb,omitempty" json:"deb,omitempty" jsonschema:"title=deb-specific settings"` APK APK `yaml:"apk,omitempty" json:"apk,omitempty" jsonschema:"title=apk-specific settings"` ArchLinux ArchLinux `yaml:"archlinux,omitempty" json:"archlinux,omitempty" jsonschema:"title=archlinux-specific settings"` IPK IPK `yaml:"ipk,omitempty" json:"ipk,omitempty" jsonschema:"title=ipk-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" json:"key_file,omitempty" jsonschema:"title=key file,example=key.gpg"` KeyID *string `yaml:"key_id,omitempty" json:"key_id,omitempty" jsonschema:"title=key id,example=bc8acdd415bd80b3"` KeyPassphrase string `yaml:"-" json:"-"` // populated from environment variable // SignFn, if set, will be called with the package-specific data to sign. // For deb and rpm packages, data is the full package content. // For apk packages, data is the SHA1 digest of control tgz. // // This allows for signing implementations other than using a local file // (for example using a remote signer like KMS). SignFn func(data io.Reader) ([]byte, error) `yaml:"-" json:"-"` // populated when used as a library }
type Packager ΒΆ
type Packager interface { Package(info *Info, w io.Writer) error ConventionalFileName(info *Info) string }
Packager represents any packager implementation.
type PackagerWithExtension ΒΆ added in v2.20.0
type RPM ΒΆ
type RPM struct { Arch string `yaml:"arch,omitempty" json:"arch,omitempty" jsonschema:"title=architecture in rpm nomenclature"` Scripts RPMScripts `yaml:"scripts,omitempty" json:"scripts,omitempty" jsonschema:"title=rpm-specific scripts"` Group string `yaml:"group,omitempty" json:"group,omitempty" jsonschema:"title=package group,example=Unspecified"` Summary string `yaml:"summary,omitempty" json:"summary,omitempty" jsonschema:"title=package summary"` Compression string `` /* 153-byte string literal not displayed */ Signature RPMSignature `yaml:"signature,omitempty" json:"signature,omitempty" jsonschema:"title=rpm signature"` Packager string `yaml:"packager,omitempty" json:"packager,omitempty" jsonschema:"title=organization that actually packaged the software"` Prefixes []string `yaml:"prefixes,omitempty" json:"prefixes,omitempty" jsonschema:"title=Prefixes for relocatable packages"` }
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" json:"pretrans,omitempty" jsonschema:"title=pretrans script"` PostTrans string `yaml:"posttrans,omitempty" json:"posttrans,omitempty" jsonschema:"title=posttrans script"` Verify string `yaml:"verify,omitempty" json:"verify,omitempty" jsonschema:"title=verify script"` }
RPMScripts represents scripts only available on RPM packages.
type RPMSignature ΒΆ
type RPMSignature struct {
PackageSignature `yaml:",inline" json:",inline"`
}
type Scripts ΒΆ
type Scripts struct { PreInstall string `yaml:"preinstall,omitempty" json:"preinstall,omitempty" jsonschema:"title=pre install"` PostInstall string `yaml:"postinstall,omitempty" json:"postinstall,omitempty" jsonschema:"title=post install"` PreRemove string `yaml:"preremove,omitempty" json:"preremove,omitempty" jsonschema:"title=pre remove"` PostRemove string `yaml:"postremove,omitempty" json:"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. |
Package arch implements nfpm.Packager providing bindings for Arch Linux packages.
|
Package arch implements nfpm.Packager providing bindings for Arch Linux packages. |
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 ipk implements nfpm.Packager providing .ipk bindings.
|
Package ipk implements nfpm.Packager providing .ipk bindings. |
Package rpm implements nfpm.Packager providing .rpm bindings using google/rpmpack.
|
Package rpm implements nfpm.Packager providing .rpm bindings using google/rpmpack. |