Documentation
¶
Index ¶
- Constants
- Variables
- func DoWatch(F func(fast bool) (chan bool, error), dofast, onfirst bool, files []string, ...) error
- func Gen(args []string, rootflags flags.RootPflagpole, cmdflags flags.GenFlagpole) error
- func InitModule(args []string, rootflags flags.RootPflagpole, cmdflags flags.GenFlagpole) error
- func LoadShadow(subdir string, verbosity int) (map[string]*File, error)
- func Merge(textO, textA, textB string) string
- func NewDebouncer(after time.Duration) func(f func())
- type AdhocTemplateConfig
- type File
- func (F *File) FormatRendered() error
- func (F *File) ReadUser(outdir string) error
- func (F *File) Render(outdir string, UseDiff3 bool) error
- func (F *File) RenderData() (err error)
- func (F *File) RenderTemplate() (err error)
- func (F *File) UnifyContent(UseDiff3 bool) (write bool, err error)
- func (F *File) WriteOutput(basedir string) error
- func (F *File) WriteShadow(basedir string) error
- type FileStats
- type Generator
- type GeneratorStats
- type Runtime
- func (R *Runtime) AsModule() error
- func (R *Runtime) ClearGenerators()
- func (R *Runtime) CreateAdhocGenerator() error
- func (R *Runtime) ExtractGenerators() error
- func (R *Runtime) ListGenerators() (gens []string, err error)
- func (R *Runtime) LoadCue() (err error)
- func (R *Runtime) LoadGenerators() []error
- func (R *Runtime) PrintMergeConflicts()
- func (R *Runtime) PrintStats()
- func (R *Runtime) Reload(fast bool) error
- func (R *Runtime) RunGenerator(G *Generator) (errs []error)
- func (R *Runtime) RunGenerators() []error
- func (R *Runtime) WriteGenerator(G *Generator) (errs []error)
- func (R *Runtime) WriteOutput() []error
- type RuntimeStats
- type StaticGlobs
- type TemplateContent
- type TemplateGlobs
Constants ¶
View Source
const ( // Sep1 signifies the start of a conflict. Sep1 = "<<<<<<<" // Sep2 signifies the middle of a conflict. Sep2 = "=======" // Sep3 signifies the end of a conflict. Sep3 = ">>>>>>>" )
View Source
const CUE_VENDOR_DIR = "./cue.mod/pkg/"
View Source
const SHADOW_DIR = ".hof/shadow/"
Variables ¶
View Source
var DiffMatchPatch = diffmatchpatch.New()
DiffMatchPatch contains the diff algorithm settings.
Functions ¶
func Gen ¶
func Gen(args []string, rootflags flags.RootPflagpole, cmdflags flags.GenFlagpole) error
func InitModule ¶
func InitModule(args []string, rootflags flags.RootPflagpole, cmdflags flags.GenFlagpole) error
func NewDebouncer ¶
Types ¶
type AdhocTemplateConfig ¶
type AdhocTemplateConfig struct {
// Template filepath
Filepath string
// CUE path to input value within global value
Cuepath string
// CUE path to schema value within global value
Schema string
// Filepath to write results, possibly templated
Outpath string
// Is this a repeated template
Repeated bool
}
parsed version of the --template flag semicolon separated: <filepath>:<?cuepath>@<schema>;[]<?outpath> each extra section is
type File ¶
type File struct {
// Input Data, local to this file
In interface{}
// The full path under the output location
// empty implies don't generate, even though it may endup in the list
Filepath string
// Template parameters (only one should be set at a time i.e. != "")
TemplateContent string // The content, takes precedence over next option
TemplatePath string // Named template
DatafileFormat string // Data format file
// Template delimiters
TemplateDelims *templates.Delims
// CUE value for datafiles
// (we use a different name here so that it does not automatically try to decode, which would require concreteness)
Value cue.Value
// Template Instance Pointer
// If local, this will be created when the template content is laoded
// If a named template, acutal template lives in the generator and is created at folder import time
TemplateInstance *templates.Template
// Content
RenderContent []byte
FinalContent []byte
// Shadow related
ShadowFile *File
UserFile *File
DoWrite bool
// Bookkeeping
Errors []error
FileStats
}
func (*File) FormatRendered ¶
func (*File) RenderData ¶
func (*File) RenderTemplate ¶
func (*File) WriteOutput ¶
func (*File) WriteShadow ¶
type FileStats ¶
type FileStats struct {
// using 0 (false) and 1 (true) for easier summation code below
IsNew int
IsSame int
IsSkipped int
IsWritten int
IsErr int
IsModified int
IsModifiedRender int
IsModifiedOutput int
IsModifiedDiff3 int
IsConflicted int
RenderingTime time.Duration
CompareTime time.Duration
TotalTime time.Duration
}
type Generator ¶
type Generator struct {
//
// Set by Hof via cuelang extraction
// Label in Cuelang
Name string
// Base directory for output
Outdir string
// "Global" input, merged with out replacing onto the files
In map[string]interface{}
Val cue.Value
// File globs to watch and trigger regen on change
WatchFull []string
WatchFast []string
// The list fo files for hof to generate, in cue values
Out []*File
Templates []*TemplateGlobs
Partials []*TemplateGlobs
// Filepath globs for static files to load
Statics []*StaticGlobs
// The following will be automatically added to the template context
// under its name for reference in GenFiles and partials in templates
EmbeddedTemplates map[string]*TemplateContent
EmbeddedPartials map[string]*TemplateContent
// Static files are available for pure cue generators that want to have static files
// These should be named by their filepath, but be the content of the file
EmbeddedStatics map[string]string
// Subgenerators for composition
Generators map[string]*Generator
// Used for indexing into the vendor directory...
PackageName string
// Use Diff3 & Shadow
UseDiff3 bool
// Disabled? we do this when looking at expressions and optimizing
// TODO, make this field available in cuelang?
Disabled bool
// Template System Cache
TemplateMap templates.TemplateMap
PartialsMap templates.TemplateMap
// Files and the shadow dir for doing neat things
OrderedFiles []*File
Files map[string]*File
Shadow map[string]*File
// Print extra information
Debug bool
// Status for this generator and processing
Stats *GeneratorStats
// Cuelang related, also set externally
CueValue cue.Value
}
A generator pulled from the cue instances
func (*Generator) GenerateFiles ¶
func (*Generator) Initialize ¶
func (*Generator) ResolveFile ¶
type GeneratorStats ¶
type GeneratorStats struct {
NumNew int
NumSame int
NumSkipped int
NumDeleted int
NumWritten int
NumStatic int
NumErr int
TotalFiles int
NumModified int
NumModifiedRender int
NumModifiedOutput int
NumModifiedDiff3 int
NumConflicted int
LoadingTime time.Duration
RenderingTime time.Duration
WritingTime time.Duration
TotalTime time.Duration
}
func (*GeneratorStats) CalcTotals ¶
func (S *GeneratorStats) CalcTotals(G *Generator) error
func (*GeneratorStats) String ¶
func (S *GeneratorStats) String() string
type Runtime ¶
type Runtime struct {
sync.Mutex
// Setup options
Entrypoints []string
Flagpole flags.GenFlagpole
Verbosity int
// Cue ralated
CueRuntime *cuetils.CueRuntime
// Hof related
Generators map[string]*Generator
Stats *RuntimeStats
// contains filtered or unexported fields
}
func NewRuntime ¶
func NewRuntime(entrypoints []string, cmdflags flags.GenFlagpole) *Runtime
func (*Runtime) ClearGenerators ¶
func (R *Runtime) ClearGenerators()
func (*Runtime) CreateAdhocGenerator ¶
func (*Runtime) ExtractGenerators ¶
func (*Runtime) ListGenerators ¶
func (*Runtime) LoadGenerators ¶
func (*Runtime) PrintMergeConflicts ¶
func (R *Runtime) PrintMergeConflicts()
func (*Runtime) PrintStats ¶
func (R *Runtime) PrintStats()
func (*Runtime) RunGenerator ¶
func (*Runtime) RunGenerators ¶
func (*Runtime) WriteGenerator ¶
func (*Runtime) WriteOutput ¶
type RuntimeStats ¶
type RuntimeStats struct {
CueLoadingTime time.Duration
GenLoadingTime time.Duration
GenRunningTime time.Duration
}
func (*RuntimeStats) String ¶
func (S *RuntimeStats) String() string
type StaticGlobs ¶
type TemplateContent ¶
Click to show internal directories.
Click to hide internal directories.