Documentation ¶
Index ¶
- Constants
- func AddDefaultPath(args []string, defaultMemberPath string) []string
- func AddDefaultTargetForTinyOrStatic(args []string, stack string, staticType string) ([]string, error)
- func FilterInstallArgs(args string) ([]string, error)
- func ParseWorkspaceMember(workspaceMember string) (string, string, string, error)
- type CargoRunner
- func (c CargoRunner) BuildArgs(destLayer libcnb.Layer, defaultMemberPath string) ([]string, error)
- func (c CargoRunner) CargoVersion() (string, error)
- func (c CargoRunner) CleanCargoHomeCache() error
- func (c CargoRunner) Install(srcDir string, destLayer libcnb.Layer) error
- func (c CargoRunner) InstallMember(memberPath string, srcDir string, destLayer libcnb.Layer) error
- func (c CargoRunner) InstallTool(name string, additionalArgs []string) error
- func (c CargoRunner) ProjectTargets(srcDir string) ([]string, error)
- func (c CargoRunner) RustVersion() (string, error)
- func (c CargoRunner) WorkspaceMembers(srcDir string, destLayer libcnb.Layer) ([]url.URL, error)
- type CargoService
- type Option
- func WithCargoHome(cargoHome string) Option
- func WithCargoInstallArgs(installArgs string) Option
- func WithCargoWorkspaceMembers(cargoWorkspaceMembers string) Option
- func WithExecutor(executor effect.Executor) Option
- func WithLogger(logger bard.Logger) Option
- func WithStack(stack string) Option
- func WithStaticType(staticType string) Option
Constants ¶
const ( StaticTypeMUSLC = "muslc" StaticTypeGNULIBC = "gnulibc" )
Variables ¶
This section is empty.
Functions ¶
func AddDefaultPath ¶
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 ¶
FilterInstallArgs provides a clean list of allowed arguments
func ParseWorkspaceMember ¶ added in v0.11.0
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` - `url#version` for local packages where the workspace member name is equal to the directory name like `path+file:///Users/jondoe/.../services/example-transform#0.1.0`
The final directory is assumed to be the package name with the local package format. 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) 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 ¶
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 ¶
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 WithCargoInstallArgs ¶
WithCargoInstallArgs sets addition args to pass to cargo install
func WithCargoWorkspaceMembers ¶
WithCargoWorkspaceMembers sets a comma separate list of workspace members
func WithExecutor ¶
WithExecutor sets the executor to use when running cargo
func WithLogger ¶
WithLogger sets additional args to pass to cargo install
func WithStaticType ¶ added in v0.10.0
WithStaticType sets the static type to use