package unit

import "github.com/coreos/go-systemd/unit"

Index

Constants

const (
	// SYSTEMD_LINE_MAX mimics the maximum line length that systemd can use.
	// On typical systemd platforms (i.e. modern Linux), this will most
	// commonly be 2048, so let's use that as a sanity check.
	// Technically, we should probably pull this at runtime:
	//    SYSTEMD_LINE_MAX = int(C.sysconf(C.__SC_LINE_MAX))
	// but this would introduce an (unfortunate) dependency on cgo
	SYSTEMD_LINE_MAX = 2048

	// SYSTEMD_NEWLINE defines characters that systemd considers indicators
	// for a newline.
	SYSTEMD_NEWLINE = "\r\n"
)

Variables

var (
	// ErrLineTooLong gets returned when a line is too long for systemd to handle.
	ErrLineTooLong = fmt.Errorf("line too long (max %d bytes)", SYSTEMD_LINE_MAX)
)

Functions

func AllMatch

func AllMatch(u1 []*UnitOption, u2 []*UnitOption) bool

AllMatch compares two slices of UnitOptions and returns true if they are identical.

func Serialize

func Serialize(opts []*UnitOption) io.Reader

Serialize encodes all of the given UnitOption objects into a unit file. When serialized the options are sorted in their supplied order but grouped by section.

func UnitNameEscape

func UnitNameEscape(unescaped string) string

UnitNameEscape escapes a string as `systemd-escape` would

func UnitNamePathEscape

func UnitNamePathEscape(unescaped string) string

UnitNamePathEscape escapes a string as `systemd-escape --path` would

func UnitNamePathUnescape

func UnitNamePathUnescape(escaped string) string

UnitNamePathUnescape unescapes a string as `systemd-escape --path --unescape` would

func UnitNameUnescape

func UnitNameUnescape(escaped string) string

UnitNameUnescape unescapes a string as `systemd-escape --unescape` would

Types

type UnitOption

type UnitOption struct {
	Section string
	Name    string
	Value   string
}

UnitOption represents an option in a systemd unit file.

func Deserialize

func Deserialize(f io.Reader) (opts []*UnitOption, err error)

Deserialize parses a systemd unit file into a list of UnitOption objects.

func NewUnitOption

func NewUnitOption(section, name, value string) *UnitOption

NewUnitOption returns a new UnitOption instance with pre-set values.

func (*UnitOption) Match

func (uo *UnitOption) Match(other *UnitOption) bool

Match compares two UnitOptions and returns true if they are identical.

func (*UnitOption) String

func (uo *UnitOption) String() string

Source Files

deserialize.go escape.go option.go serialize.go

Version
v0.0.0-20191104093116-d3cd4ed1dbcf (latest)
Published
Nov 4, 2019
Platform
linux/amd64
Imports
8 packages
Last checked
2 weeks ago

Tools for package owners.