Back to godoc.org
github.com/goreleaser/nfpm

Package nfpm

v1.8.0
Latest Go to latest

The highest tagged major version is .

Published: Sep 19, 2020 | License: MIT | Module: github.com/goreleaser/nfpm

Overview

Package nfpm provides ways to package programs in some linux packaging formats.

Index

func Register

func Register(format string, p Packager)

Register a new packager for the given format.

func Validate

func Validate(info *Info) error

Validate the given Info and returns an error if it is invalid.

type APK

type APK struct {
	Signature APKSignature `yaml:"signature,omitempty"`
}

type APKSignature

type APKSignature struct {
	// RSA private key in PEM format
	KeyFile       string `yaml:"key_file,omitempty"`
	KeyPassphrase string `yaml:"-"` // populated from environment variable
	// defaults to <maintainer email>.rsa.pub
	KeyName string `yaml:"key_name,omitempty"`
}

type Config

type Config struct {
	Info      `yaml:",inline"`
	Overrides map[string]Overridables `yaml:"overrides,omitempty"`
}

Config contains the top level configuration for packages.

func Parse

func Parse(in io.Reader) (config Config, err error)

Parse decodes YAML data from an io.Reader into a configuration struct.

func ParseFile

func ParseFile(path string) (config Config, err error)

ParseFile decodes YAML data from a file path into a configuration struct.

func (*Config) Get

func (c *Config) Get(format string) (info *Info, err error)

Get returns the Info struct for the given packager format. Overrides for the given format are merged into the final struct.

func (*Config) Validate

func (c *Config) Validate() error

Validate ensures that the config is well typed.

type Deb

type Deb struct {
	Scripts         DebScripts   `yaml:"scripts,omitempty"`
	Triggers        DebTriggers  `yaml:"triggers,omitempty"`
	Breaks          []string     `yaml:"breaks,omitempty"`
	VersionMetadata string       `yaml:"metadata,omitempty"` // Deprecated: Moved to Info
	Signature       DebSignature `yaml:"signature,omitempty"`
}

Deb is custom configs that are only available on deb packages.

type DebScripts

type DebScripts struct {
	Rules string `yaml:"rules,omitempty"`
}

DebScripts is scripts only available on deb packages.

type DebSignature

type DebSignature struct {
	// PGP secret key, can be ASCII-armored
	KeyFile       string `yaml:"key_file,omitempty"`
	KeyPassphrase string `yaml:"-"` // populated from environment variable
	// origin, maint or archive (defaults to origin)
	Type string `yaml:"type,omitempty"`
}

type DebTriggers

type DebTriggers struct {
	Interest        []string `yaml:"interest,omitempty"`
	InterestAwait   []string `yaml:"interest_await,omitempty"`
	InterestNoAwait []string `yaml:"interest_noawait,omitempty"`
	Activate        []string `yaml:"activate,omitempty"`
	ActivateAwait   []string `yaml:"activate_await,omitempty"`
	ActivateNoAwait []string `yaml:"activate_noawait,omitempty"`
}

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,omitempty"`
	Arch            string `yaml:"arch,omitempty"`
	Platform        string `yaml:"platform,omitempty"`
	Epoch           string `yaml:"epoch,omitempty"`
	Version         string `yaml:"version,omitempty"`
	Release         string `yaml:"release,omitempty"`
	Prerelease      string `yaml:"prerelease,omitempty"`
	VersionMetadata string `yaml:"version_metadata,omitempty"`
	Section         string `yaml:"section,omitempty"`
	Priority        string `yaml:"priority,omitempty"`
	Maintainer      string `yaml:"maintainer,omitempty"`
	Description     string `yaml:"description,omitempty"`
	Vendor          string `yaml:"vendor,omitempty"`
	Homepage        string `yaml:"homepage,omitempty"`
	License         string `yaml:"license,omitempty"`
	Bindir          string `yaml:"bindir,omitempty"` // Deprecated: this does nothing. TODO: remove.
	Changelog       string `yaml:"changelog,omitempty"`
	Target          string `yaml:"-"`
}

Info contains information about a single package.

func WithDefaults

func WithDefaults(info *Info) *Info

WithDefaults set some sane defaults into the given Info.

func (*Info) GetChangeLog

func (info *Info) GetChangeLog() (log *chglog.PackageChangeLog, err error)

GetChangeLog parses the provided changelog file.

type Overridables

type Overridables struct {
	Replaces     []string          `yaml:"replaces,omitempty"`
	Provides     []string          `yaml:"provides,omitempty"`
	Depends      []string          `yaml:"depends,omitempty"`
	Recommends   []string          `yaml:"recommends,omitempty"`
	Suggests     []string          `yaml:"suggests,omitempty"`
	Conflicts    []string          `yaml:"conflicts,omitempty"`
	Files        map[string]string `yaml:"files,omitempty"`
	ConfigFiles  map[string]string `yaml:"config_files,omitempty"`
	Symlinks     map[string]string `yaml:"symlinks,omitempty"`
	EmptyFolders []string          `yaml:"empty_folders,omitempty"`
	Scripts      Scripts           `yaml:"scripts,omitempty"`
	RPM          RPM               `yaml:"rpm,omitempty"`
	Deb          Deb               `yaml:"deb,omitempty"`
	APK          APK               `yaml:"apk,omitempty"`
}

Overridables contain the field which are overridable in a package.

type Packager

type Packager interface {
	Package(info *Info, w io.Writer) error
	ConventionalFileName(info *Info) string
}

Packager represents any packager implementation.

func Get

func Get(format string) (Packager, error)

Get a packager for the given format.

type RPM

type RPM struct {
	Group       string `yaml:"group,omitempty"`
	Compression string `yaml:"compression,omitempty"`
	// https://www.cl.cam.ac.uk/~jw35/docs/rpm_config.html
	ConfigNoReplaceFiles map[string]string `yaml:"config_noreplace_files,omitempty"`
	Signature            RPMSignature      `yaml:"signature,omitempty"`
}

RPM is custom configs that are only available on RPM packages.

type RPMSignature

type RPMSignature struct {
	// PGP secret key, can be ASCII-armored
	KeyFile       string `yaml:"key_file,omitempty"`
	KeyPassphrase string `yaml:"-"` // populated from environment variable
}

type Scripts

type Scripts struct {
	PreInstall  string `yaml:"preinstall,omitempty"`
	PostInstall string `yaml:"postinstall,omitempty"`
	PreRemove   string `yaml:"preremove,omitempty"`
	PostRemove  string `yaml:"postremove,omitempty"`
}

Scripts contains information about maintainer scripts for packages.

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier