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.