-
Notifications
You must be signed in to change notification settings - Fork 21
/
conversion.go
59 lines (48 loc) · 1.75 KB
/
conversion.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright 2021 VMware, Inc. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
package cli
import (
"fmt"
"strings"
)
const (
// BinNamePrefix is the prefix for tanzu plugin binary names.
BinNamePrefix = "tanzu-plugin-"
// TestBinNamePrefix is the prefix for tanzu plugin binary names.
TestBinNamePrefix = "tanzu-plugin-test-"
// ArtifactNamePrefix is the prefix for tanzu artifact names.
ArtifactNamePrefix = "tanzu"
)
// PluginNameFromBin returns a plugin name from the binary name.
func PluginNameFromBin(binName string) string {
if BuildArch().IsWindows() {
binName = strings.TrimSuffix(binName, ".exe")
}
return strings.TrimPrefix(binName, BinNamePrefix)
}
// BinFromPluginName return a plugin binary name from its name.
func BinFromPluginName(name string) string {
return BinNamePrefix + name
}
// PluginNameFromTestBin returns a plugin name from the test binary name.
func PluginNameFromTestBin(binName string) string {
return strings.TrimPrefix(binName, TestBinNamePrefix)
}
// BinTestFromPluginName return a plugin binary name from its name.
func BinTestFromPluginName(name string) string {
return TestBinNamePrefix + name
}
// MakeArtifactName returns an artifact name for a plugin name.
func MakeArtifactName(pluginName string, arch Arch) string {
if arch.IsWindows() {
return fmt.Sprintf("%s-%s-%s.exe", ArtifactNamePrefix, pluginName, arch)
}
return fmt.Sprintf("%s-%s-%s", ArtifactNamePrefix, pluginName, arch)
}
// MakeTestArtifactName returns a test artifact name for a plugin name.
func MakeTestArtifactName(pluginName string, arch Arch) string {
if arch.IsWindows() {
return fmt.Sprintf("%s-%s-test-%s.exe", ArtifactNamePrefix, pluginName, arch)
}
return fmt.Sprintf("%s-%s-test-%s", ArtifactNamePrefix, pluginName, arch)
}