MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / InstallVersion

Method InstallVersion

internal/pluginstore/install.go:88–114  ·  view source on GitHub ↗

InstallVersion installs a plugin artifact from a fixed release tag/version.

(ctx context.Context, plugin Plugin, releaseTag string, version string, options InstallOptions)

Source from the content-addressed store, hash-verified

86
87// InstallVersion installs a plugin artifact from a fixed release tag/version.
88func (c Client) InstallVersion(ctx context.Context, plugin Plugin, releaseTag string, version string, options InstallOptions) (InstallResult, error) {
89 if errValidate := ValidatePlugin(plugin); errValidate != nil {
90 return InstallResult{}, errValidate
91 }
92 options = normalizeInstallOptions(options)
93 version = normalizeVersion(version)
94 if !validPluginVersion(version) {
95 return InstallResult{}, fmt.Errorf("invalid plugin version %q", version)
96 }
97 releaseTag = strings.TrimSpace(releaseTag)
98 if releaseTag == "" {
99 releaseTag = version
100 }
101 release, errRelease := c.FetchReleaseByTag(ctx, plugin, releaseTag)
102 if errRelease != nil {
103 return InstallResult{}, errRelease
104 }
105 releaseVersion, errVersion := ReleaseVersion(release)
106 if errVersion != nil {
107 return InstallResult{}, errVersion
108 }
109 if releaseVersion != version {
110 return InstallResult{}, fmt.Errorf("release tag %q resolved version %q, want %q", releaseTag, releaseVersion, version)
111 }
112 plugin.Version = version
113 return c.installRelease(ctx, plugin, release, version, options)
114}
115
116func (c Client) installRelease(ctx context.Context, plugin Plugin, release Release, version string, options InstallOptions) (InstallResult, error) {
117 archiveAsset, checksumAsset, errAssets := SelectReleaseAssets(release, plugin.ID, plugin.Version, options.GOOS, options.GOARCH)

Calls 7

FetchReleaseByTagMethod · 0.95
installReleaseMethod · 0.95
normalizeInstallOptionsFunction · 0.85
normalizeVersionFunction · 0.85
ValidatePluginFunction · 0.70
validPluginVersionFunction · 0.70
ReleaseVersionFunction · 0.70

Tested by 1