Documentation
¶
Overview ¶
Package codebase builds a Codebase from config: the in-memory kind (the default), a plain directory, or a git working tree, each composed with the foundation/codebase views and run through the client tier (Decorate). The sources live in the memory/, fs/ and git/ subpackages.
Index ¶
Constants ¶
const ( // KindMemory serves Deps.Files from memory (the default). KindMemory client.Kind = "memory" // KindFS serves every file under Config.Root except `.git`. KindFS client.Kind = "fs" // KindGit serves the git working tree at Config.Root: tracked plus untracked, // non-ignored files. KindGit client.Kind = "git" )
Variables ¶
This section is empty.
Functions ¶
func Decorate ¶
func Decorate( base interfaces.Codebase, decs decorate.Decorations, name string, opts ...client.Option, ) (interfaces.Codebase, error)
Decorate runs every Codebase operation of base through the client tier as the client named name: files, text, match, changed and rendered. Go and YAML return base's views, whose reads go through the same memo.
func NewFromConfig ¶
NewFromConfig builds the codebase cfg.Kind selects and runs it through the client tier. An unknown kind, or a kind missing its root or runner, is CodeInvalidInput.
Types ¶
type Config ¶
type Config struct {
// Kind selects the source; empty means KindMemory.
Kind client.Kind `yaml:"kind" mapstructure:"kind"`
// Name labels the client in decoration overrides, metrics, spans and logs; empty
// uses the family name ("codebase").
Name string `yaml:"name" mapstructure:"name"`
// Root is the repository root for KindFS and KindGit.
Root string `yaml:"root" mapstructure:"root"`
}
Config selects and locates the repository.
type Deps ¶
type Deps struct {
// Decorations decorates the client from the decoration config and supplies its
// observability.
decorate.Decorations
// Runner runs git for KindGit.
Runner interfaces.CommandRunner
// Renderer renders charts for Rendered; nil makes Rendered CodeUnavailable.
Renderer interfaces.Renderer
// Snapshot is the run's memo; nil starts a new one keyed by Config.Root.
Snapshot *views.Snapshot
// Files are KindMemory's contents, by repository-relative path.
Files map[string]string
}
Deps carries the codebase's runtime collaborators.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package fs is the plain-directory CodebaseSource: every file under a root, except the `.git` directory, with no version control.
|
Package fs is the plain-directory CodebaseSource: every file under a root, except the `.git` directory, with no version control. |
|
Package git is the git working-tree CodebaseSource: the files git tracks plus the untracked files it does not ignore, read from disk, with Changed answered by `git diff --merge-base`.
|
Package git is the git working-tree CodebaseSource: the files git tracks plus the untracked files it does not ignore, read from disk, with Changed answered by `git diff --merge-base`. |
|
Package memory is the in-memory CodebaseSource: a map of root-relative paths to contents, with no version control.
|
Package memory is the in-memory CodebaseSource: a map of root-relative paths to contents, with no version control. |