Documentation
¶
Overview ¶
Package command holds support functions and types for writing gb and gb plugins
Index ¶
- func FindProjectroot(path string) (string, error)
- func ImportPaths(ctx Context, cwd string, args []string) []string
- func MergeEnv(env []string, args map[string]string) []string
- func MustGetwd() string
- func NewContext(projectroot string, options ...func(*gb.Context) error) (*gb.Context, error)
- func RelImportPaths(ctx *gb.Context, paths ...string) []string
- func ResolvePackages(r Resolver, paths ...string) ([]*gb.Package, error)
- func ResolvePackagesWithTests(r Resolver, paths ...string) ([]*gb.Package, error)
- func RunCommand(fs *flag.FlagSet, cmd *Command, projectroot, goroot string, args []string) error
- func Test(flags []string, pkgs ...*gb.Package) error
- func TestFlags(testArgs []string) []string
- func TestFlagsExtraParse(args []string) (parseArgs []string, extraArgs []string, err error)
- func TestPackage(targets map[string]*gb.Action, pkg *gb.Package, flags []string) (*gb.Action, error)
- func TestPackages(flags []string, pkgs ...*gb.Package) (*gb.Action, error)
- type Command
- type Context
- type CoverVar
- type Resolver
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FindProjectroot ¶
FindProjectroot works upwards from path seaching for the src/ directory which identifies the project root.
func ImportPaths ¶
importPaths returns the import paths to use for the given command line.
func NewContext ¶
NewContext creates a gb.Context for the project root.
func RelImportPaths ¶
RelImportPaths converts a list of potentially relative import path (a path starting with .) to an absolute import path relative to the project root of the Context provided.
func ResolvePackages ¶
ResolvePackages resolves import paths to packages.
func ResolvePackagesWithTests ¶
ResolvePackagesWithTests is similar to ResolvePackages however it also loads the test and external test packages of args into the context.
func RunCommand ¶
RunCommand detects the project root, parses flags and runs the Command.
func Test ¶
Test returns a Target representing the result of compiling the package pkg, and its dependencies, and linking it with the test runner.
func TestFlagsExtraParse ¶
TestFlagsExtraParse is used to separate known arguments from unknown arguments passed on the command line. Returns a string slice of test plugin arguments (parseArgs), and a slice of string arguments for the test binary (extraArgs). An error is returned if an argument is used twice, or an argument value is incorrect.
Types ¶
type Command ¶
type Command struct {
// Name of the command
Name string
// UsageLine demonstrates how to use this command
UsageLine string
// Single line description of the purpose of the command
Short string
// Description of this command
Long string
// Run is invoked with a Context derived from the Project and arguments
// left over after flag parsing.
Run func(ctx *gb.Context, args []string) error
// AddFlags installs additional flags to be parsed before Run.
AddFlags func(fs *flag.FlagSet)
// Allow plugins to modify arguments
FlagParse func(fs *flag.FlagSet, args []string) error
// ParseArgs provides an alternative method to parse arguments.
// By default, arguments will be parsed as import paths with
// ImportPaths
ParseArgs func(ctx *gb.Context, cwd string, args []string) []string
}
Command represents a subcommand, or plugin that is executed within a gb project.
type CoverVar ¶
CoverVar holds the name of the generated coverage variables targeting the named file.
type Resolver ¶
type Resolver interface {
// Srcdirs returns []string{ "$PROJECT/src", "$PROJECT/vendor/src" }
Srcdirs() []string
// ResolvePackage resolves the import path to a *gb.Package
ResolvePackage(path string) (*gb.Package, error)
// ResolvePackagesWithTests is similar to ResolvePackages however
// it also loads the test and external test packages of args into
// the context.
ResolvePackageWithTests(path string) (*gb.Package, error)
}
Resolver resolves packages.