package auger

const (
	augLensTpl      string = "/augeas/load/%v" // A fmt.Sprintf string (single placeholder only) for Lens module roots.
	augFsTree       string = "/files"
	augFsTpl        string = augFsTree + "%v//%v" // A fmt.Sprintf string (first placeholder fspath, second placeholder includeDirective) for files to search for the includeDirective.
	augInclTfm      string = "incl"               // The transformer keyword for Augeas includes.
	augAppendSuffix string = "[last()+1]"
)

var (
	dstPtrTrue  bool = true
	dstPtrFalse bool = false
)

var (
	// PtrTrue and PtrFalse are convenience references for constructing an AugFlags if needed. It is recommended you do not change these values if you do not like being confused.
	PtrTrue  *bool = &dstPtrTrue
	PtrFalse *bool = &dstPtrFalse
)

/*
	IncludeOptNone is the default include recursion option for Aug.RecursiveInclude.
	* No special behavior is defined
	* All include directives are assumed to refer:
		* Explicitly/exclusively to file paths
		* That must exist
*/
const IncludeOptNone includeOpt = 0
const (
	// IncludeOptNoExist specifies that inclusions are allowed to not exist, otherwise an error will be raised while attempting to parse them.
	IncludeOptNoExist includeOpt = 1 << iota
	// IncludeOptGlobbing indicates that the inclusion system supports globbing (as supported by (github.com/gobwas/glob).Match).
	IncludeOptGlobbing
	// IncludeOptRegex indicates that the inclusion system supports matching by regex (as supported by regexp).
	IncludeOptRegex
	// IncludeOptDirs indicates that the inclusion system supports matching by directory.
	IncludeOptDirs
	// IncludeOptDirsRecursive indicates that the inclusion system also recurses into subdirectories of matched directories. Only used if IncludeOptDirs is also set.
	IncludeOptDirsRecursive
)