3.2 Parameters and Arguments

A group may define one or more parameters through an additional argument of the def-group node with the total number of parameters:

def-group GroupA 2 {
    sd {
        (section) Service {
            (set) PIDFile "/run/${0}-pid"
            (set) ExecStartPre "/usr/bin/pre-${1}"
        }
    }
}

Parameters can be accessed in string values or dependency arguments through ${0}, ${1}, ..., ${N-1} specifiers. Additionally, the special specifier ${$} expands into a literal $.

Arguments are provided through a child args node:

def-group GroupB {
    pulls {
        GroupA {
            args "pidname" "exec-sh"
        }
    }
}
def-group GroupC 1 {
    pulls {
        GroupA {
            args "${0}-A" "${0}-B"
        }
    }
}