...

Package unit

import "github.com/coreos/go-systemd/v22/unit"
Overview
Index

Overview ▾

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)
)

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 SerializeSections

func SerializeSections(sections []*UnitSection) io.Reader

SerializeSections will serializes the unit file from the given UnitSections.

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

type UnitEntry

UnitEntry is a single line entry in a Unit file.

type UnitEntry struct {
    Name  string
    Value string
}

func (*UnitEntry) String

func (u *UnitEntry) String() string

String implements the stringify interface for UnitEntry

type UnitOption

UnitOption represents an option in a systemd unit file.

type UnitOption struct {
    Section string
    Name    string
    Value   string
}

func Deserialize

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

Deserialize parses a systemd unit file into a list of UnitOptions. Note: this function is deprecated in favor of DeserializeOptions and will be removed at a future date.

func DeserializeOptions

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

DeserializeOptions parses a systemd unit file into a list of UnitOptions

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

type UnitSection

UnitSection is a section in a Unit file. The section name and a list of entries in that section.

type UnitSection struct {
    Section string
    Entries []*UnitEntry
}

func DeserializeSections

func DeserializeSections(f io.Reader) ([]*UnitSection, error)

DeserializeSections deserializes into a list of UnitSections.

func (*UnitSection) String

func (s *UnitSection) String() string

String implements the stringify interface for UnitSection