client

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const PKG_NAME_PATTERN = "%s_%s"

Variables

This section is empty.

Functions

func DFS

func DFS(graph DependencyGraph, dependency string, visited map[string]bool, result []string) []string

Traverse dependency graph using depth-first search (DFS)

func GetReleasesFromSource

func GetReleasesFromSource(sourceType, uri string) ([]string, error)

func OutputDependencies

func OutputDependencies(graph DependencyGraph) []string

Output dependencies in the same format as go mod graph

Types

type DependencyGraph

type DependencyGraph map[string][]string

Construct dependency graph

func ConstructDependencyGraph

func ConstructDependencyGraph(dependencies map[string]map[string]string) DependencyGraph

Function to construct dependency graph from dependency map

func ConstructDependencyGraphFromModFile

func ConstructDependencyGraphFromModFile(kpmClient *KpmClient, kclPkg *pkg.KclPkg) (DependencyGraph, error)

Function to construct dependency graph by parsing kcl.mod file

type KpmClient

type KpmClient struct {

	// The downloader of the dependencies.
	DepDownloader *downloader.DepDownloader
	// contains filtered or unexported fields
}

KpmClient is the client of kpm.

func NewKpmClient

func NewKpmClient() (*KpmClient, error)

NewKpmClient will create a new kpm client with default settings.

func (*KpmClient) AcquireDepSum

func (c *KpmClient) AcquireDepSum(dep pkg.Dependency) (string, error)

AcquireDepSum will acquire the checksum of the dependency from the OCI registry.

func (*KpmClient) AcquirePackageCacheLock

func (c *KpmClient) AcquirePackageCacheLock() error

AcquirePackageCacheLock will acquire the lock of the package cache.

func (*KpmClient) AcquireTheLatestOciVersion

func (c *KpmClient) AcquireTheLatestOciVersion(ociSource pkg.Oci) (string, error)

AcquireTheLatestOciVersion will acquire the latest version of the OCI reference.

func (*KpmClient) AddDepToPkg

func (c *KpmClient) AddDepToPkg(kclPkg *pkg.KclPkg, d *pkg.Dependency) error

AddDepToPkg will add a dependency to the kcl package.

func (*KpmClient) AddDepWithOpts

func (c *KpmClient) AddDepWithOpts(kclPkg *pkg.KclPkg, opt *opt.AddOptions) (*pkg.KclPkg, error)

AddDepWithOpts will add a dependency to the current kcl package.

func (*KpmClient) Compile

func (c *KpmClient) Compile(kclPkg *pkg.KclPkg, kclvmCompiler *runner.Compiler) (*kcl.KCLResultList, error)

Compile will call kcl compiler to compile the current kcl package and its dependent packages.

func (*KpmClient) CompileGitPkg

func (c *KpmClient) CompileGitPkg(gitOpts *git.CloneOptions, compileOpts *opt.CompileOptions) (*kcl.KCLResultList, error)

CompileGitPkg will compile the kcl package from the git url.

func (*KpmClient) CompileOciPkg

func (c *KpmClient) CompileOciPkg(ociSource, version string, opts *opt.CompileOptions) (*kcl.KCLResultList, error)

CompileOciPkg will compile the kcl package from the OCI reference or url.

func (*KpmClient) CompilePkgWithOpts

func (c *KpmClient) CompilePkgWithOpts(kclPkg *pkg.KclPkg, opts *opt.CompileOptions) (*kcl.KCLResultList, error)

CompilePkgWithOpts will compile the kcl package with the compile options.

func (*KpmClient) CompileTarPkg

func (c *KpmClient) CompileTarPkg(tarPath string, opts *opt.CompileOptions) (*kcl.KCLResultList, error)

CompileTarPkg will compile the kcl package from the tar package.

func (*KpmClient) CompileWithOpts

func (c *KpmClient) CompileWithOpts(opts *opt.CompileOptions) (*kcl.KCLResultList, error)

CompileWithOpts will compile the kcl program with the compile options.

func (*KpmClient) Download

func (c *KpmClient) Download(dep *pkg.Dependency, homePath, localPath string) (*pkg.Dependency, error)

Download will download the dependency to the local path.

func (*KpmClient) DownloadDeps

func (c *KpmClient) DownloadDeps(deps *pkg.Dependencies, lockDeps *pkg.Dependencies, depGraph graph.Graph[module.Version, module.Version], pkghome string, parent module.Version) (*pkg.Dependencies, error)

downloadDeps will download all the dependencies of the current kcl package.

func (*KpmClient) DownloadFromGit

func (c *KpmClient) DownloadFromGit(dep *pkg.Git, localPath string) (string, error)

DownloadFromGit will download the dependency from the git repository.

func (*KpmClient) DownloadFromOci

func (c *KpmClient) DownloadFromOci(dep *pkg.Oci, localPath string) (string, error)

DownloadFromOci will download the dependency from the oci repository. Deprecated: Use the DownloadPkgFromOci instead.

func (*KpmClient) DownloadPkgFromOci

func (c *KpmClient) DownloadPkgFromOci(dep *pkg.Oci, localPath string) (*pkg.KclPkg, error)

LoadPkgFromOci will download the kcl package from the oci repository and return an `KclPkg`.

func (*KpmClient) FetchOciManifestIntoJsonStr

func (c *KpmClient) FetchOciManifestIntoJsonStr(opts opt.OciFetchOptions) (string, error)

FetchOciManifestConfIntoJsonStr will fetch the oci manifest config of the kcl package from the oci registry and return it into json string.

func (*KpmClient) FillDepInfo

func (c *KpmClient) FillDepInfo(dep *pkg.Dependency, homepath string) error

FillDepInfo will fill registry information for a dependency.

func (*KpmClient) FillDependenciesInfo

func (c *KpmClient) FillDependenciesInfo(modFile *pkg.ModFile) error

FillDependenciesInfo will fill registry information for all dependencies in a kcl.mod.

func (*KpmClient) GetLogWriter

func (c *KpmClient) GetLogWriter() io.Writer

func (*KpmClient) GetNoSumCheck

func (c *KpmClient) GetNoSumCheck() bool

GetNoSumCheck will return the 'noSumCheck' flag.

func (*KpmClient) GetSettings

func (c *KpmClient) GetSettings() *settings.Settings

GetSettings will return the settings of kpm client.

func (*KpmClient) InitEmptyPkg

func (c *KpmClient) InitEmptyPkg(kclPkg *pkg.KclPkg) error

InitEmptyPkg will initialize an empty kcl package.

func (*KpmClient) InitGraphAndDownloadDeps

func (c *KpmClient) InitGraphAndDownloadDeps(kclPkg *pkg.KclPkg) (*pkg.Dependencies, graph.Graph[module.Version, module.Version], error)

InitGraphAndDownloadDeps initializes a dependency graph and call downloadDeps function.

func (*KpmClient) LoadLockDeps

func (c *KpmClient) LoadLockDeps(pkgPath string) (*pkg.Dependencies, error)

Load the kcl.mod.lock and acquire the checksum of the dependencies from OCI registry.

func (*KpmClient) LoadModFile

func (c *KpmClient) LoadModFile(pkgPath string) (*pkg.ModFile, error)

func (*KpmClient) LoadPkgFromPath

func (c *KpmClient) LoadPkgFromPath(pkgPath string) (*pkg.KclPkg, error)

func (*KpmClient) LoginOci

func (c *KpmClient) LoginOci(hostname, username, password string) error

LoginOci will login to the oci registry.

func (*KpmClient) LogoutOci

func (c *KpmClient) LogoutOci(hostname string) error

LogoutOci will logout from the oci registry.

func (*KpmClient) Package

func (c *KpmClient) Package(kclPkg *pkg.KclPkg, tarPath string, vendorMode bool) error

Package will package the current kcl package into a "*.tar" file into 'tarPath'.

func (*KpmClient) PackagePkg

func (c *KpmClient) PackagePkg(kclPkg *pkg.KclPkg, vendorMode bool) (string, error)

PackagePkg will package the current kcl package into a "*.tar" file in under the package path.

func (*KpmClient) ParseKclModFile

func (c *KpmClient) ParseKclModFile(kclPkg *pkg.KclPkg) (map[string]map[string]string, error)

func (*KpmClient) ParseOciOptionFromString

func (c *KpmClient) ParseOciOptionFromString(oci string, tag string) (*opt.OciOptions, error)

ParseOciOptionFromString will parser '<repo_name>:<repo_tag>' into an 'OciOptions' with an OCI registry. the default OCI registry is 'docker.io'. if the 'ociUrl' is only '<repo_name>', ParseOciOptionFromString will take 'latest' as the default tag.

func (*KpmClient) ParseOciRef

func (c *KpmClient) ParseOciRef(ociRef string) (*opt.OciOptions, error)

ParseOciRef will parser '<repo_name>:<repo_tag>' into an 'OciOptions'.

func (*KpmClient) PullFromOci

func (c *KpmClient) PullFromOci(localPath, source, tag string) error

PullFromOci will pull a kcl package from oci registry and unpack it.

func (*KpmClient) PushToOci

func (c *KpmClient) PushToOci(localPath string, ociOpts *opt.OciOptions) error

PushToOci will push a kcl package to oci registry.

func (*KpmClient) ReleasePackageCacheLock

func (c *KpmClient) ReleasePackageCacheLock() error

ReleasePackageCacheLock will release the lock of the package cache.

func (*KpmClient) ResolveDepsIntoMap

func (c *KpmClient) ResolveDepsIntoMap(kclPkg *pkg.KclPkg) (map[string]string, error)

ResolveDepsIntoMap will calculate the map of kcl package name and local storage path of the external packages.

func (*KpmClient) ResolveDepsMetadataInJsonStr

func (c *KpmClient) ResolveDepsMetadataInJsonStr(kclPkg *pkg.KclPkg, update bool) (string, error)

ResolveDepsMetadataInJsonStr will calculate the local storage path of the external package, and check whether the package exists locally. If the package does not exist, it will re-download to the local. Finally, the calculated metadata of the dependent packages is serialized into a json string and returned.

func (*KpmClient) ResolvePkgDepsMetadata

func (c *KpmClient) ResolvePkgDepsMetadata(kclPkg *pkg.KclPkg, update bool) error

ResolveDepsMetadata will calculate the local storage path of the external package, and check whether the package exists locally. If the package does not exist, it will re-download to the local. Since redownloads are not triggered if local dependencies exists, indirect dependencies are also synchronized to the lock file by `lockDeps`.

func (*KpmClient) RunWithOpts

func (c *KpmClient) RunWithOpts(opts ...opt.Option) (*kcl.KCLResultList, error)

RunWithOpts will compile the kcl package with the compile options.

func (*KpmClient) SetHomePath

func (c *KpmClient) SetHomePath(homePath string)

SetHomePath will set the home path of kpm.

func (*KpmClient) SetLogWriter

func (c *KpmClient) SetLogWriter(writer io.Writer)

func (*KpmClient) SetNoSumCheck

func (c *KpmClient) SetNoSumCheck(noSumCheck bool)

SetNoSumCheck will set the 'noSumCheck' flag.

func (*KpmClient) UpdateDeps

func (c *KpmClient) UpdateDeps(kclPkg *pkg.KclPkg) error

UpdateDeps will update the dependencies.

func (*KpmClient) VendorDeps

func (c *KpmClient) VendorDeps(kclPkg *pkg.KclPkg) error

VendorDeps will vendor all the dependencies of the current kcl package.

Jump to

Keyboard shortcuts

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