
FIXED: * `envs/funcs.go:78:3: unknown field IgnoreWhiteSpace in struct literal of type EnvErrNoVal, but does have IgnoreWhitespace` * `envs/funcs_enverrnoval.go:15:8: sb.WasFound undefined (type *strings.Builder has no field or method WasFound)`
87 lines
2.1 KiB
Go
87 lines
2.1 KiB
Go
package pdsh
|
|
|
|
// TODO: This... doesn't really have much usefulness, does it?
|
|
/*
|
|
type (
|
|
HostLister interface {
|
|
// Hosts returns ALL hsots (where applicable) that are considered/generated for a Lister.
|
|
Hosts() (hosts []string, err error)
|
|
}
|
|
)
|
|
*/
|
|
|
|
type (
|
|
/*
|
|
DshGroupLister behaves like the host list generator
|
|
for pdsh(1)'s "dshgroup module options" (the `misc/dshgroup`
|
|
module for pdsh).
|
|
*/
|
|
DshGroupLister struct {
|
|
/*
|
|
NoEnv, if true, will *not* use DSHGROUP_PATH (force-defaulting to /etc/dsh/group/,
|
|
but see NoDefault).
|
|
*/
|
|
NoEnv bool
|
|
/*
|
|
NoDefault, if true, will *not* add the default path `/etc/dsh/group/`
|
|
to the search paths.
|
|
|
|
If NoDefault is false, this path is only added if DSHGROUP_PATH is not defined
|
|
(or, if it IS defined, if NoEnv is true).
|
|
*/
|
|
NoDefault bool
|
|
// NoHome, if true, will *not* add the `~/.dsh/group/` path to the search paths.
|
|
NoHome bool
|
|
/*
|
|
ForceLegacy, if true, will disable the PDSH `#include <PATH|GROUP>` modification --
|
|
treating the source as a traditional DSH group file instead (e.g. `#include ...`
|
|
is treated as just a comment).
|
|
*/
|
|
ForceLegacy bool
|
|
}
|
|
)
|
|
|
|
type (
|
|
dshGrpGenerator struct {
|
|
/*
|
|
tokens are interleaved with tokenized and indexed *after*;
|
|
in other words, str = <substr0><token0><substr1><token1>...
|
|
*/
|
|
tokens []dshGrpToken
|
|
// tokenized holds the split original text with tokens removed and split where the tokens occur.
|
|
tokenized []string
|
|
// text holds the original pattern.
|
|
text string
|
|
}
|
|
dshGrpToken struct {
|
|
/*
|
|
token contains the original range specifier.
|
|
Tokens may be e.g.:
|
|
|
|
* 3: str3
|
|
* 3-5: str3, str4, str5
|
|
* 3,5: str3, str5
|
|
*/
|
|
token string
|
|
// subtokens hold a split of the individual range specifiers.
|
|
subtokens []dshGrpSubtoken
|
|
}
|
|
dshGrpSubtoken struct {
|
|
// start indicates either the single value or the start of the range.
|
|
start uint
|
|
// end, if 0 or less than start, indicates a single-value range.
|
|
end uint
|
|
// pad, if non-empty, is a string to add to the beginning of each of the generated substrings for this subtoken.
|
|
pad string
|
|
}
|
|
)
|
|
|
|
type (
|
|
PtrnParseErr struct {
|
|
pos uint
|
|
ptrn string
|
|
r rune
|
|
err error
|
|
}
|
|
)
|