Skip to content

Commit 1291ebc

Browse files
committed
Merge branch 'dev'
2 parents 4a7e05d + 75cba4a commit 1291ebc

File tree

13 files changed

+278
-76
lines changed

13 files changed

+278
-76
lines changed

.github/workflows/test.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ jobs:
3838
with:
3939
dotnet-version: '6.x'
4040

41+
# Install Mono on Ubuntu to run nuget.exe (due to this issue on Ubuntu 24 that hasn't been fixed yet - https://github.com/NuGet/setup-nuget/issues/168)
42+
- name: Install Mono on Ubuntu
43+
if: matrix.os == 'ubuntu'
44+
run: |
45+
sudo apt-get update
46+
sudo apt-get install -y apt-transport-https dirmngr gnupg ca-certificates
47+
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
48+
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
49+
sudo apt-get update
50+
sudo apt-get install -y mono-complete
51+
4152
- name: Setup Go with cache
4253
uses: jfrog/.github/actions/install-go-with-cache@main
4354

artifactory/commands/transferfiles/transfer.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@ import (
55
"encoding/json"
66
"errors"
77
"fmt"
8-
"github.com/jfrog/gofrog/safeconvert"
9-
"github.com/jfrog/jfrog-client-go/artifactory/services"
108
"os"
119
"os/signal"
1210
"path/filepath"
1311
"strconv"
1412
"strings"
1513
"syscall"
1614

15+
"github.com/jfrog/gofrog/safeconvert"
16+
"github.com/jfrog/jfrog-client-go/artifactory/services"
17+
1718
"github.com/jfrog/gofrog/version"
1819
"github.com/jfrog/jfrog-cli-core/v2/artifactory/commands/transferfiles/state"
1920
"github.com/jfrog/jfrog-cli-core/v2/artifactory/commands/utils/precheckrunner"
@@ -266,7 +267,7 @@ func (tdc *TransferFilesCommand) initStateManager(allSourceLocalRepos, sourceBui
266267
}
267268

268269
func (tdc *TransferFilesCommand) reportTransferFilesUsage() {
269-
log.Debug(usageReporter.ReportUsagePrefix, "Sending Transfer Files info...")
270+
log.Debug(usageReporter.ArtifactoryCallHomePrefix, "Sending Transfer Files info...")
270271
sourceStorageInfo, err := tdc.sourceStorageInfoManager.GetStorageInfo()
271272
if err != nil {
272273
log.Debug(err.Error())
@@ -288,8 +289,7 @@ func (tdc *TransferFilesCommand) reportTransferFilesUsage() {
288289
AttributeValue: sourceStorageInfo.BinariesSize,
289290
},
290291
}
291-
err = usage.SendReportUsage(coreutils.GetCliUserAgent(), tdc.CommandName(), tdc.targetStorageInfoManager.GetServiceManager(), reportUsageAttributes...)
292-
if err != nil {
292+
if err = usage.NewArtifactoryCallHome().SendUsage(coreutils.GetCliUserAgent(), tdc.CommandName(), tdc.targetStorageInfoManager.GetServiceManager(), reportUsageAttributes...); err != nil {
293293
log.Debug(err.Error())
294294
}
295295
}

artifactory/utils/utils.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import (
44
"context"
55
"encoding/json"
66
"errors"
7-
ioutils "github.com/jfrog/gofrog/io"
8-
"github.com/jfrog/jfrog-client-go/evidence"
97
"io"
108
"net/http"
119
"net/url"
@@ -16,6 +14,9 @@ import (
1614
"strings"
1715
"time"
1816

17+
ioutils "github.com/jfrog/gofrog/io"
18+
"github.com/jfrog/jfrog-client-go/evidence"
19+
1920
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
2021
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
2122
"github.com/jfrog/jfrog-client-go/access"
@@ -24,6 +25,7 @@ import (
2425
clientConfig "github.com/jfrog/jfrog-client-go/config"
2526
"github.com/jfrog/jfrog-client-go/distribution"
2627
"github.com/jfrog/jfrog-client-go/http/httpclient"
28+
"github.com/jfrog/jfrog-client-go/jfconnect"
2729
"github.com/jfrog/jfrog-client-go/lifecycle"
2830
"github.com/jfrog/jfrog-client-go/metadata"
2931
clientUtils "github.com/jfrog/jfrog-client-go/utils"
@@ -260,6 +262,26 @@ func CreateMetadataServiceManager(serviceDetails *config.ServerDetails, isDryRun
260262
return metadata.NewManager(serviceConfig)
261263
}
262264

265+
func CreateJfConnectServiceManager(serverDetails *config.ServerDetails) (jfconnect.Manager, error) {
266+
certsPath, err := coreutils.GetJfrogCertsDir()
267+
if err != nil {
268+
return nil, err
269+
}
270+
jfConnectAuth, err := serverDetails.CreateJfConnectAuthConfig()
271+
if err != nil {
272+
return nil, err
273+
}
274+
serviceConfig, err := clientConfig.NewConfigBuilder().
275+
SetServiceDetails(jfConnectAuth).
276+
SetCertificatesPath(certsPath).
277+
SetInsecureTls(serverDetails.InsecureTls).
278+
Build()
279+
if err != nil {
280+
return nil, err
281+
}
282+
return jfconnect.NewManager(serviceConfig)
283+
}
284+
263285
// This error indicates that the build was scanned by Xray, but Xray found issues with the build.
264286
// If Xray failed to scan the build, for example due to a networking issue, a regular error should be returned.
265287
var errBuildScan = errors.New("issues found during xray build scan")

common/commands/command.go

Lines changed: 54 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package commands
22

33
import (
4+
"sync"
5+
46
"github.com/jfrog/jfrog-cli-core/v2/artifactory/utils"
57
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
68
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
9+
coreusage "github.com/jfrog/jfrog-cli-core/v2/utils/usage"
710
usageReporter "github.com/jfrog/jfrog-cli-core/v2/utils/usage"
811
"github.com/jfrog/jfrog-client-go/artifactory/usage"
912
"github.com/jfrog/jfrog-client-go/utils/log"
@@ -30,29 +33,59 @@ func Exec(command Command) error {
3033
}
3134

3235
func reportUsage(command Command, channel chan<- bool) {
36+
// When the usage reporting is done, signal to the channel.
3337
defer signalReportUsageFinished(channel)
34-
reportUsage := usageReporter.ShouldReportUsage()
35-
if reportUsage {
36-
serverDetails, err := command.ServerDetails()
37-
if err != nil {
38-
log.Debug(usageReporter.ReportUsagePrefix, err.Error())
39-
return
40-
}
41-
if serverDetails != nil && serverDetails.ArtifactoryUrl != "" {
42-
log.Debug(usageReporter.ReportUsagePrefix, "Sending info...")
43-
serviceManager, err := utils.CreateServiceManager(serverDetails, -1, 0, false)
44-
if err != nil {
45-
log.Debug(usageReporter.ReportUsagePrefix, err.Error())
46-
return
47-
}
48-
err = usage.SendReportUsage(coreutils.GetCliUserAgent(), command.CommandName(), serviceManager)
49-
if err != nil {
50-
log.Debug(err.Error())
51-
return
52-
}
38+
39+
if !usageReporter.ShouldReportUsage() {
40+
log.Debug("Usage reporting is disabled")
41+
return
42+
}
43+
44+
serverDetails, err := command.ServerDetails()
45+
if err != nil {
46+
log.Debug("Usage reporting:", err.Error())
47+
return
48+
}
49+
50+
if serverDetails != nil {
51+
var wg sync.WaitGroup
52+
53+
// Report the usage to Artifactory's Call Home API.
54+
if serverDetails.ArtifactoryUrl != "" {
55+
wg.Add(1)
56+
go func() {
57+
defer wg.Done()
58+
reportUsageToArtifactoryCallHome(command, serverDetails)
59+
}()
5360
}
54-
} else {
55-
log.Debug("Usage info is disabled.")
61+
62+
// Report the usage to the Visibility System.
63+
wg.Add(1)
64+
go func() {
65+
defer wg.Done()
66+
reportUsageToVisibilitySystem(command, serverDetails)
67+
}()
68+
69+
// Wait for the two report actions to finish.
70+
wg.Wait()
71+
}
72+
}
73+
74+
func reportUsageToVisibilitySystem(command Command, serverDetails *config.ServerDetails) {
75+
if err := coreusage.NewVisibilitySystemManager(serverDetails).SendUsage(command.CommandName()); err != nil {
76+
log.Debug("Visibility System Usage reporting:", err.Error())
77+
}
78+
}
79+
80+
func reportUsageToArtifactoryCallHome(command Command, serverDetails *config.ServerDetails) {
81+
log.Debug(usageReporter.ArtifactoryCallHomePrefix, "Sending info...")
82+
serviceManager, err := utils.CreateServiceManager(serverDetails, -1, 0, false)
83+
if err != nil {
84+
log.Debug(usageReporter.ArtifactoryCallHomePrefix, err.Error())
85+
return
86+
}
87+
if err = usage.NewArtifactoryCallHome().SendUsage(coreutils.GetCliUserAgent(), command.CommandName(), serviceManager); err != nil {
88+
log.Debug(err.Error())
5689
}
5790
}
5891

general/login/login.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package login
22

33
import (
4+
"fmt"
45
"github.com/jfrog/jfrog-cli-core/v2/common/commands"
56
"github.com/jfrog/jfrog-cli-core/v2/general"
67
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
@@ -32,21 +33,22 @@ func (lc *LoginCommand) Run() error {
3233
}
3334

3435
func newConfLogin() error {
35-
platformUrl, err := promptPlatformUrl()
36-
if err != nil {
37-
return err
38-
}
36+
platformUrl := promptPlatformUrl()
3937
newServer := config.ServerDetails{Url: platformUrl}
4038
return general.ConfigServerWithDeducedId(&newServer, true, true)
4139
}
4240

43-
func promptPlatformUrl() (string, error) {
41+
func promptPlatformUrl() string {
4442
var platformUrl string
45-
ioutils.ScanFromConsole("Enter your JFrog Platform URL", &platformUrl, "")
46-
if platformUrl == "" {
47-
return "", errorutils.CheckErrorf("providing JFrog Platform URL is mandatory")
43+
// Loop until a non-empty platformUrl is entered
44+
for {
45+
ioutils.ScanFromConsole("Enter your JFrog Platform URL", &platformUrl, "")
46+
if platformUrl != "" {
47+
break
48+
}
49+
fmt.Println("The JFrog Platform URL cannot be empty. Please try again.")
4850
}
49-
return platformUrl, nil
51+
return platformUrl
5052
}
5153

5254
func existingConfLogin(configurations []*config.ServerDetails) error {

go.mod

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@ require (
1111
github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1
1212
github.com/google/uuid v1.6.0
1313
github.com/gookit/color v1.5.4
14-
github.com/jedib0t/go-pretty/v6 v6.6.1
15-
github.com/jfrog/build-info-go v1.10.6
14+
github.com/jedib0t/go-pretty/v6 v6.6.3
15+
github.com/jfrog/build-info-go v1.10.7
1616
github.com/jfrog/gofrog v1.7.6
17-
github.com/jfrog/jfrog-client-go v1.48.3
17+
github.com/jfrog/jfrog-client-go v1.48.4
1818
github.com/magiconair/properties v1.8.7
1919
github.com/manifoldco/promptui v0.9.0
2020
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
2121
github.com/spf13/viper v1.19.0
22-
github.com/stretchr/testify v1.9.0
22+
github.com/stretchr/testify v1.10.0
2323
github.com/urfave/cli v1.22.16
2424
github.com/vbauerster/mpb/v8 v8.8.3
2525
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f
2626
golang.org/x/mod v0.22.0
27-
golang.org/x/sync v0.9.0
28-
golang.org/x/term v0.26.0
29-
golang.org/x/text v0.20.0
27+
golang.org/x/sync v0.10.0
28+
golang.org/x/term v0.27.0
29+
golang.org/x/text v0.21.0
3030
gopkg.in/yaml.v3 v3.0.1
3131
)
3232

@@ -88,15 +88,15 @@ require (
8888
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect
8989
go.uber.org/atomic v1.9.0 // indirect
9090
go.uber.org/multierr v1.9.0 // indirect
91-
golang.org/x/crypto v0.29.0 // indirect
91+
golang.org/x/crypto v0.31.0 // indirect
9292
golang.org/x/net v0.31.0 // indirect
93-
golang.org/x/sys v0.27.0 // indirect
93+
golang.org/x/sys v0.28.0 // indirect
9494
golang.org/x/tools v0.27.0 // indirect
9595
gopkg.in/ini.v1 v1.67.0 // indirect
9696
gopkg.in/warnings.v0 v0.1.2 // indirect
9797
)
9898

99-
// replace github.com/jfrog/jfrog-client-go => github.com/eyalbe4/jfrog-client-go v1.28.1-0.20241103083749-45c13ff7fe16
99+
// replace github.com/jfrog/jfrog-client-go => github.com/eyalbe4/jfrog-client-go v1.28.1-0.20241220200217-c4b9ef90c453
100100

101101
// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20241121100855-e7a75ceee2bd
102102

go.sum

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,16 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
8585
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
8686
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
8787
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
88-
github.com/jedib0t/go-pretty/v6 v6.6.1 h1:iJ65Xjb680rHcikRj6DSIbzCex2huitmc7bDtxYVWyc=
89-
github.com/jedib0t/go-pretty/v6 v6.6.1/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E=
88+
github.com/jedib0t/go-pretty/v6 v6.6.3 h1:nGqgS0tgIO1Hto47HSaaK4ac/I/Bu7usmdD3qvs0WvM=
89+
github.com/jedib0t/go-pretty/v6 v6.6.3/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E=
9090
github.com/jfrog/archiver/v3 v3.6.1 h1:LOxnkw9pOn45DzCbZNFV6K0+6dCsQ0L8mR3ZcujO5eI=
9191
github.com/jfrog/archiver/v3 v3.6.1/go.mod h1:VgR+3WZS4N+i9FaDwLZbq+jeU4B4zctXL+gL4EMzfLw=
92-
github.com/jfrog/build-info-go v1.10.6 h1:zH1ZhXlVfi5DlFyunygHjrdOcnv5qxfeLqmsfD4+lc4=
93-
github.com/jfrog/build-info-go v1.10.6/go.mod h1:JcISnovFXKx3wWf3p1fcMmlPdt6adxScXvoJN4WXqIE=
92+
github.com/jfrog/build-info-go v1.10.7 h1:10NVHYg0193gJpQft+S4WQfvYMtj5jlwwhJRvkFJtBE=
93+
github.com/jfrog/build-info-go v1.10.7/go.mod h1:JcISnovFXKx3wWf3p1fcMmlPdt6adxScXvoJN4WXqIE=
9494
github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s=
9595
github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4=
96-
github.com/jfrog/jfrog-client-go v1.48.3 h1:HJpKGul0f/S2i7Uf7K/GwS1EUGiirt1LWXL1lanKNhU=
97-
github.com/jfrog/jfrog-client-go v1.48.3/go.mod h1:1a7bmQHkRmPEza9wva2+WVrYzrGbosrMymq57kyG5gU=
96+
github.com/jfrog/jfrog-client-go v1.48.4 h1:uXvBr2ebFKpBRUhWgC9TSSJe32IbSYGlbDp9tDzBcaY=
97+
github.com/jfrog/jfrog-client-go v1.48.4/go.mod h1:2ySOMva54L3EYYIlCBYBTcTgqfrrQ19gtpA/MWfA/ec=
9898
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
9999
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
100100
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
@@ -191,8 +191,9 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P
191191
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
192192
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
193193
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
194-
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
195194
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
195+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
196+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
196197
github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
197198
github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
198199
github.com/terminalstatic/go-xsd-validate v0.1.5 h1:RqpJnf6HGE2CB/lZB1A8BYguk8uRtcvYAPLCF15qguo=
@@ -221,8 +222,8 @@ go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
221222
go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
222223
go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
223224
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
224-
golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ=
225-
golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg=
225+
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
226+
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
226227
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo=
227228
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak=
228229
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
@@ -231,8 +232,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx
231232
golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo=
232233
golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM=
233234
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
234-
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
235-
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
235+
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
236+
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
236237
golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
237238
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
238239
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -251,14 +252,14 @@ golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBc
251252
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
252253
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
253254
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
254-
golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s=
255-
golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
255+
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
256+
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
256257
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
257-
golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU=
258-
golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E=
258+
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
259+
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
259260
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
260-
golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug=
261-
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
261+
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
262+
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
262263
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
263264
golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o=
264265
golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q=

plugins/components/commandcomp.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ func (c *Context) GetStringFlagValue(flagName string) string {
6060
return c.stringFlags[flagName]
6161
}
6262

63+
func (c *Context) AddStringFlag(key, value string) {
64+
c.stringFlags[key] = value
65+
}
66+
6367
func (c *Context) GetIntFlagValue(flagName string) (value int, err error) {
6468
parsed, err := strconv.ParseInt(c.GetStringFlagValue(flagName), 0, 64)
6569
if err != nil {

0 commit comments

Comments
 (0)