runner

package
v0.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StaticTypeMUSLC   = "muslc"
	StaticTypeGNULIBC = "gnulibc"
)

Variables

This section is empty.

Functions

func AddDefaultPath

func AddDefaultPath(args []string, defaultMemberPath string) []string

AddDefaultPath will add --path=. if --path is not set

func AddDefaultTargetForTinyOrStatic added in v0.10.0

func AddDefaultTargetForTinyOrStatic(args []string, stack string, staticType string) ([]string, error)

AddDefaultTargetForTinyOrStatic will add the appropriate options if not already set

func FilterInstallArgs

func FilterInstallArgs(args string) ([]string, error)

FilterInstallArgs provides a clean list of allowed arguments

func ParseWorkspaceMember added in v0.11.0

func ParseWorkspaceMember(workspaceMember string) (string, string, string, error)

parseWorkspaceMember parses a workspace member which can be in a couple of different formats

pre-1.77: `package-name package-version (url)`, like `function 0.1.0 (path+file:///Users/dmikusa/Downloads/fn-rs)`
1.77+: `url#package-name@package-version` like `path+file:///Users/dmikusa/Downloads/fn-rs#function@0.1.0`

returns the package name, version, URL, and optional error in that order

Types

type CargoRunner

type CargoRunner struct {
	CargoHome             string
	CargoWorkspaceMembers string
	CargoInstallArgs      string
	Executor              effect.Executor
	Logger                bard.Logger
	Stack                 string
	StaticType            string
}

CargoRunner can execute cargo via CLI

func NewCargoRunner

func NewCargoRunner(options ...Option) CargoRunner

NewCargoRunner creates a new cargo runner with the given options

func (CargoRunner) BuildArgs

func (c CargoRunner) BuildArgs(destLayer libcnb.Layer, defaultMemberPath string) ([]string, error)

BuildArgs will build the list of arguments to pass `cargo install`

func (CargoRunner) CargoVersion

func (c CargoRunner) CargoVersion() (string, error)

CargoVersion returns the version of cargo installed

func (CargoRunner) CleanCargoHomeCache

func (c CargoRunner) CleanCargoHomeCache() error

CleanCargoHomeCache clears out unnecessary files from under $CARGO_HOME

func (CargoRunner) Install

func (c CargoRunner) Install(srcDir string, destLayer libcnb.Layer) error

Install will build and install the project using `cargo install`

func (CargoRunner) InstallMember

func (c CargoRunner) InstallMember(memberPath string, srcDir string, destLayer libcnb.Layer) error

InstallMember will build and install a specific workspace member using `cargo install`

func (CargoRunner) InstallTool added in v0.6.0

func (c CargoRunner) InstallTool(name string, additionalArgs []string) error

func (CargoRunner) ProjectTargets

func (c CargoRunner) ProjectTargets(srcDir string) ([]string, error)

ProjectTargets loads the members from the project workspace

func (CargoRunner) RustVersion

func (c CargoRunner) RustVersion() (string, error)

RustVersion returns the version of rustc installed

func (CargoRunner) WorkspaceMembers

func (c CargoRunner) WorkspaceMembers(srcDir string, destLayer libcnb.Layer) ([]url.URL, error)

WorkspaceMembers loads the members from the project workspace

type CargoService

type CargoService interface {
	Install(srcDir string, destLayer libcnb.Layer) error
	InstallMember(memberPath string, srcDir string, destLayer libcnb.Layer) error
	InstallTool(name string, additionalArgs []string) error
	WorkspaceMembers(srcDir string, destLayer libcnb.Layer) ([]url.URL, error)
	ProjectTargets(srcDir string) ([]string, error)
	CleanCargoHomeCache() error
	CargoVersion() (string, error)
	RustVersion() (string, error)
}

type Option

type Option func(runner CargoRunner) CargoRunner

Option is a function for configuring a CargoRunner

func WithCargoHome

func WithCargoHome(cargoHome string) Option

WithCargoHome sets CARGO_HOME

func WithCargoInstallArgs

func WithCargoInstallArgs(installArgs string) Option

WithCargoInstallArgs sets addition args to pass to cargo install

func WithCargoWorkspaceMembers

func WithCargoWorkspaceMembers(cargoWorkspaceMembers string) Option

WithCargoWorkspaceMembers sets a comma separate list of workspace members

func WithExecutor

func WithExecutor(executor effect.Executor) Option

WithExecutor sets the executor to use when running cargo

func WithLogger

func WithLogger(logger bard.Logger) Option

WithLogger sets additional args to pass to cargo install

func WithStack added in v0.4.0

func WithStack(stack string) Option

WithStack sets the stack on which we're running

func WithStaticType added in v0.10.0

func WithStaticType(staticType string) Option

WithStaticType sets the static type to use

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL