forked from arduino/arduino-cli
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moved a batch of function from commands/* subpackage to commands
This commit is preparatory to move all the implementation of ArduinoCoreService interface directly as methods of ArduinoCoreService. The goal is to turn ArduinoCoreService into a proper implementation instead of being a mere proxy to global functions.
- Loading branch information
Showing
53 changed files
with
140 additions
and
158 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,7 @@ | |
// Arduino software without disclosing the source code of your own applications. | ||
// To purchase a commercial license, send an email to [email protected]. | ||
|
||
package lib | ||
package commands | ||
|
||
import ( | ||
"strings" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,7 @@ | |
// Arduino software without disclosing the source code of your own applications. | ||
// To purchase a commercial license, send an email to [email protected]. | ||
|
||
package daemon | ||
package commands | ||
|
||
import ( | ||
"context" | ||
|
@@ -22,16 +22,12 @@ import ( | |
"io" | ||
"sync/atomic" | ||
|
||
"github.com/arduino/arduino-cli/commands" | ||
"github.com/arduino/arduino-cli/commands/board" | ||
"github.com/arduino/arduino-cli/commands/cmderrors" | ||
"github.com/arduino/arduino-cli/commands/compile" | ||
"github.com/arduino/arduino-cli/commands/core" | ||
"github.com/arduino/arduino-cli/commands/lib" | ||
"github.com/arduino/arduino-cli/commands/monitor" | ||
"github.com/arduino/arduino-cli/commands/sketch" | ||
"github.com/arduino/arduino-cli/commands/upload" | ||
"github.com/arduino/arduino-cli/internal/i18n" | ||
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" | ||
"github.com/sirupsen/logrus" | ||
"google.golang.org/grpc/metadata" | ||
|
@@ -45,8 +41,6 @@ type ArduinoCoreServerImpl struct { | |
VersionString string | ||
} | ||
|
||
var tr = i18n.Tr | ||
|
||
func convertErrorToRPCStatus(err error) error { | ||
if err == nil { | ||
return nil | ||
|
@@ -76,13 +70,13 @@ func (s *ArduinoCoreServerImpl) BoardList(ctx context.Context, req *rpc.BoardLis | |
|
||
// BoardListAll FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) BoardListAll(ctx context.Context, req *rpc.BoardListAllRequest) (*rpc.BoardListAllResponse, error) { | ||
resp, err := board.ListAll(ctx, req) | ||
resp, err := BoardListAll(ctx, req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
// BoardSearch exposes to the gRPC interface the board search command | ||
func (s *ArduinoCoreServerImpl) BoardSearch(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchResponse, error) { | ||
resp, err := board.Search(ctx, req) | ||
resp, err := BoardSearch(ctx, req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
|
@@ -114,14 +108,14 @@ func (s *ArduinoCoreServerImpl) BoardListWatch(req *rpc.BoardListWatchRequest, s | |
|
||
// Destroy FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) Destroy(ctx context.Context, req *rpc.DestroyRequest) (*rpc.DestroyResponse, error) { | ||
resp, err := commands.Destroy(ctx, req) | ||
resp, err := Destroy(ctx, req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
// UpdateIndex FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) UpdateIndex(req *rpc.UpdateIndexRequest, stream rpc.ArduinoCoreService_UpdateIndexServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := commands.UpdateIndex(stream.Context(), req, | ||
err := UpdateIndex(stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.UpdateIndexResponse{DownloadProgress: p}) }, | ||
) | ||
return convertErrorToRPCStatus(err) | ||
|
@@ -130,7 +124,7 @@ func (s *ArduinoCoreServerImpl) UpdateIndex(req *rpc.UpdateIndexRequest, stream | |
// UpdateLibrariesIndex FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) UpdateLibrariesIndex(req *rpc.UpdateLibrariesIndexRequest, stream rpc.ArduinoCoreService_UpdateLibrariesIndexServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := commands.UpdateLibrariesIndex(stream.Context(), req, | ||
err := UpdateLibrariesIndex(stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.UpdateLibrariesIndexResponse{DownloadProgress: p}) }, | ||
) | ||
return convertErrorToRPCStatus(err) | ||
|
@@ -145,14 +139,14 @@ func (s *ArduinoCoreServerImpl) Create(ctx context.Context, req *rpc.CreateReque | |
if len(userAgent) == 0 { | ||
userAgent = []string{"gRPCClientUnknown/0.0.0"} | ||
} | ||
res, err := commands.Create(req, userAgent...) | ||
res, err := Create(req, userAgent...) | ||
return res, convertErrorToRPCStatus(err) | ||
} | ||
|
||
// Init FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) Init(req *rpc.InitRequest, stream rpc.ArduinoCoreService_InitServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := commands.Init(req, func(message *rpc.InitResponse) { syncSend.Send(message) }) | ||
err := Init(req, func(message *rpc.InitResponse) { syncSend.Send(message) }) | ||
return convertErrorToRPCStatus(err) | ||
} | ||
|
||
|
@@ -217,7 +211,7 @@ func (s *ArduinoCoreServerImpl) Compile(req *rpc.CompileRequest, stream rpc.Ardu | |
// PlatformInstall FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) PlatformInstall(req *rpc.PlatformInstallRequest, stream rpc.ArduinoCoreService_PlatformInstallServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
resp, err := core.PlatformInstall( | ||
resp, err := PlatformInstall( | ||
stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.PlatformInstallResponse{Progress: p}) }, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.PlatformInstallResponse{TaskProgress: p}) }, | ||
|
@@ -231,7 +225,7 @@ func (s *ArduinoCoreServerImpl) PlatformInstall(req *rpc.PlatformInstallRequest, | |
// PlatformDownload FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) PlatformDownload(req *rpc.PlatformDownloadRequest, stream rpc.ArduinoCoreService_PlatformDownloadServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
resp, err := core.PlatformDownload( | ||
resp, err := PlatformDownload( | ||
stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.PlatformDownloadResponse{Progress: p}) }, | ||
) | ||
|
@@ -244,7 +238,7 @@ func (s *ArduinoCoreServerImpl) PlatformDownload(req *rpc.PlatformDownloadReques | |
// PlatformUninstall FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) PlatformUninstall(req *rpc.PlatformUninstallRequest, stream rpc.ArduinoCoreService_PlatformUninstallServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
resp, err := core.PlatformUninstall( | ||
resp, err := PlatformUninstall( | ||
stream.Context(), req, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.PlatformUninstallResponse{TaskProgress: p}) }, | ||
) | ||
|
@@ -257,7 +251,7 @@ func (s *ArduinoCoreServerImpl) PlatformUninstall(req *rpc.PlatformUninstallRequ | |
// PlatformUpgrade FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) PlatformUpgrade(req *rpc.PlatformUpgradeRequest, stream rpc.ArduinoCoreService_PlatformUpgradeServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
resp, err := core.PlatformUpgrade( | ||
resp, err := PlatformUpgrade( | ||
stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.PlatformUpgradeResponse{Progress: p}) }, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.PlatformUpgradeResponse{TaskProgress: p}) }, | ||
|
@@ -270,7 +264,7 @@ func (s *ArduinoCoreServerImpl) PlatformUpgrade(req *rpc.PlatformUpgradeRequest, | |
|
||
// PlatformSearch FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) PlatformSearch(ctx context.Context, req *rpc.PlatformSearchRequest) (*rpc.PlatformSearchResponse, error) { | ||
resp, err := core.PlatformSearch(req) | ||
resp, err := PlatformSearch(req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
|
@@ -367,7 +361,7 @@ func (s *ArduinoCoreServerImpl) ListProgrammersAvailableForUpload(ctx context.Co | |
// LibraryDownload FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryDownload(req *rpc.LibraryDownloadRequest, stream rpc.ArduinoCoreService_LibraryDownloadServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
resp, err := lib.LibraryDownload( | ||
resp, err := LibraryDownload( | ||
stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.LibraryDownloadResponse{Progress: p}) }, | ||
) | ||
|
@@ -380,7 +374,7 @@ func (s *ArduinoCoreServerImpl) LibraryDownload(req *rpc.LibraryDownloadRequest, | |
// LibraryInstall FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryInstall(req *rpc.LibraryInstallRequest, stream rpc.ArduinoCoreService_LibraryInstallServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := lib.LibraryInstall( | ||
err := LibraryInstall( | ||
stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.LibraryInstallResponse{Progress: p}) }, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.LibraryInstallResponse{TaskProgress: p}) }, | ||
|
@@ -391,7 +385,7 @@ func (s *ArduinoCoreServerImpl) LibraryInstall(req *rpc.LibraryInstallRequest, s | |
// LibraryUpgrade FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryUpgrade(req *rpc.LibraryUpgradeRequest, stream rpc.ArduinoCoreService_LibraryUpgradeServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := lib.LibraryUpgrade( | ||
err := LibraryUpgrade( | ||
stream.Context(), req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.LibraryUpgradeResponse{Progress: p}) }, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.LibraryUpgradeResponse{TaskProgress: p}) }, | ||
|
@@ -402,7 +396,7 @@ func (s *ArduinoCoreServerImpl) LibraryUpgrade(req *rpc.LibraryUpgradeRequest, s | |
// LibraryUninstall FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryUninstall(req *rpc.LibraryUninstallRequest, stream rpc.ArduinoCoreService_LibraryUninstallServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := lib.LibraryUninstall(stream.Context(), req, | ||
err := LibraryUninstall(stream.Context(), req, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.LibraryUninstallResponse{TaskProgress: p}) }, | ||
) | ||
return convertErrorToRPCStatus(err) | ||
|
@@ -411,7 +405,7 @@ func (s *ArduinoCoreServerImpl) LibraryUninstall(req *rpc.LibraryUninstallReques | |
// LibraryUpgradeAll FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryUpgradeAll(req *rpc.LibraryUpgradeAllRequest, stream rpc.ArduinoCoreService_LibraryUpgradeAllServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := lib.LibraryUpgradeAll(req, | ||
err := LibraryUpgradeAll(req, | ||
func(p *rpc.DownloadProgress) { syncSend.Send(&rpc.LibraryUpgradeAllResponse{Progress: p}) }, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.LibraryUpgradeAllResponse{TaskProgress: p}) }, | ||
) | ||
|
@@ -420,19 +414,19 @@ func (s *ArduinoCoreServerImpl) LibraryUpgradeAll(req *rpc.LibraryUpgradeAllRequ | |
|
||
// LibraryResolveDependencies FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryResolveDependencies(ctx context.Context, req *rpc.LibraryResolveDependenciesRequest) (*rpc.LibraryResolveDependenciesResponse, error) { | ||
resp, err := lib.LibraryResolveDependencies(ctx, req) | ||
resp, err := LibraryResolveDependencies(ctx, req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
// LibrarySearch FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibrarySearch(ctx context.Context, req *rpc.LibrarySearchRequest) (*rpc.LibrarySearchResponse, error) { | ||
resp, err := lib.LibrarySearch(ctx, req) | ||
resp, err := LibrarySearch(ctx, req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
// LibraryList FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) LibraryList(ctx context.Context, req *rpc.LibraryListRequest) (*rpc.LibraryListResponse, error) { | ||
resp, err := lib.LibraryList(ctx, req) | ||
resp, err := LibraryList(ctx, req) | ||
return resp, convertErrorToRPCStatus(err) | ||
} | ||
|
||
|
@@ -445,7 +439,7 @@ func (s *ArduinoCoreServerImpl) ArchiveSketch(ctx context.Context, req *rpc.Arch | |
// ZipLibraryInstall FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) ZipLibraryInstall(req *rpc.ZipLibraryInstallRequest, stream rpc.ArduinoCoreService_ZipLibraryInstallServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := lib.ZipLibraryInstall( | ||
err := ZipLibraryInstall( | ||
stream.Context(), req, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.ZipLibraryInstallResponse{TaskProgress: p}) }, | ||
) | ||
|
@@ -455,7 +449,7 @@ func (s *ArduinoCoreServerImpl) ZipLibraryInstall(req *rpc.ZipLibraryInstallRequ | |
// GitLibraryInstall FIXMEDOC | ||
func (s *ArduinoCoreServerImpl) GitLibraryInstall(req *rpc.GitLibraryInstallRequest, stream rpc.ArduinoCoreService_GitLibraryInstallServer) error { | ||
syncSend := NewSynchronizedSend(stream.Send) | ||
err := lib.GitLibraryInstall( | ||
err := GitLibraryInstall( | ||
stream.Context(), req, | ||
func(p *rpc.TaskProgress) { syncSend.Send(&rpc.GitLibraryInstallResponse{TaskProgress: p}) }, | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,22 +13,21 @@ | |
// Arduino software without disclosing the source code of your own applications. | ||
// To purchase a commercial license, send an email to [email protected]. | ||
|
||
package board | ||
package commands | ||
|
||
import ( | ||
"context" | ||
"sort" | ||
"strings" | ||
|
||
"github.com/arduino/arduino-cli/commands" | ||
"github.com/arduino/arduino-cli/commands/internal/instances" | ||
"github.com/arduino/arduino-cli/internal/arduino/cores" | ||
"github.com/arduino/arduino-cli/internal/arduino/utils" | ||
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" | ||
) | ||
|
||
// ListAll FIXMEDOC | ||
func ListAll(ctx context.Context, req *rpc.BoardListAllRequest) (*rpc.BoardListAllResponse, error) { | ||
// BoardListAll FIXMEDOC | ||
func BoardListAll(ctx context.Context, req *rpc.BoardListAllRequest) (*rpc.BoardListAllResponse, error) { | ||
pme, release, err := instances.GetPackageManagerExplorer(req.GetInstance()) | ||
if err != nil { | ||
return nil, err | ||
|
@@ -47,8 +46,8 @@ func ListAll(ctx context.Context, req *rpc.BoardListAllRequest) (*rpc.BoardListA | |
} | ||
|
||
rpcPlatform := &rpc.Platform{ | ||
Metadata: commands.PlatformToRPCPlatformMetadata(platform), | ||
Release: commands.PlatformReleaseToRPC(installedPlatformRelease), | ||
Metadata: PlatformToRPCPlatformMetadata(platform), | ||
Release: PlatformReleaseToRPC(installedPlatformRelease), | ||
} | ||
|
||
toTest := []string{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,24 +13,23 @@ | |
// Arduino software without disclosing the source code of your own applications. | ||
// To purchase a commercial license, send an email to [email protected]. | ||
|
||
package board | ||
package commands | ||
|
||
import ( | ||
"context" | ||
"sort" | ||
"strings" | ||
|
||
"github.com/arduino/arduino-cli/commands" | ||
"github.com/arduino/arduino-cli/commands/internal/instances" | ||
"github.com/arduino/arduino-cli/internal/arduino/utils" | ||
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" | ||
) | ||
|
||
// Search returns all boards that match the search arg. | ||
// BoardSearch returns all boards that match the search arg. | ||
// Boards are searched in all platforms, including those in the index that are not yet | ||
// installed. Note that platforms that are not installed don't include boards' FQBNs. | ||
// If no search argument is used all boards are returned. | ||
func Search(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchResponse, error) { | ||
func BoardSearch(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchResponse, error) { | ||
pme, release, err := instances.GetPackageManagerExplorer(req.GetInstance()) | ||
if err != nil { | ||
return nil, err | ||
|
@@ -68,8 +67,8 @@ func Search(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchR | |
Fqbn: board.FQBN(), | ||
IsHidden: board.IsHidden(), | ||
Platform: &rpc.Platform{ | ||
Metadata: commands.PlatformToRPCPlatformMetadata(platform), | ||
Release: commands.PlatformReleaseToRPC(installedPlatformRelease), | ||
Metadata: PlatformToRPCPlatformMetadata(platform), | ||
Release: PlatformReleaseToRPC(installedPlatformRelease), | ||
}, | ||
}) | ||
} | ||
|
@@ -83,8 +82,8 @@ func Search(ctx context.Context, req *rpc.BoardSearchRequest) (*rpc.BoardSearchR | |
foundBoards = append(foundBoards, &rpc.BoardListItem{ | ||
Name: strings.Trim(board.Name, " \n"), | ||
Platform: &rpc.Platform{ | ||
Metadata: commands.PlatformToRPCPlatformMetadata(platform), | ||
Release: commands.PlatformReleaseToRPC(latestPlatformRelease), | ||
Metadata: PlatformToRPCPlatformMetadata(platform), | ||
Release: PlatformReleaseToRPC(latestPlatformRelease), | ||
}, | ||
}) | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,7 +13,7 @@ | |
// Arduino software without disclosing the source code of your own applications. | ||
// To purchase a commercial license, send an email to [email protected]. | ||
|
||
package daemon | ||
package commands | ||
|
||
import ( | ||
"context" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,24 +13,20 @@ | |
// Arduino software without disclosing the source code of your own applications. | ||
// To purchase a commercial license, send an email to [email protected]. | ||
|
||
package lib | ||
package commands | ||
|
||
import ( | ||
"context" | ||
|
||
"github.com/arduino/arduino-cli/commands" | ||
"github.com/arduino/arduino-cli/commands/cmderrors" | ||
"github.com/arduino/arduino-cli/commands/internal/instances" | ||
"github.com/arduino/arduino-cli/internal/arduino/httpclient" | ||
"github.com/arduino/arduino-cli/internal/arduino/libraries/librariesindex" | ||
"github.com/arduino/arduino-cli/internal/i18n" | ||
rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" | ||
"github.com/arduino/go-paths-helper" | ||
"github.com/sirupsen/logrus" | ||
) | ||
|
||
var tr = i18n.Tr | ||
|
||
// LibraryDownload executes the download of the library. | ||
// A DownloadProgressCB callback function must be passed to monitor download progress. | ||
func LibraryDownload(ctx context.Context, req *rpc.LibraryDownloadRequest, downloadCB rpc.DownloadProgressCB) (*rpc.LibraryDownloadResponse, error) { | ||
|
@@ -51,7 +47,7 @@ func LibraryDownload(ctx context.Context, req *rpc.LibraryDownloadRequest, downl | |
|
||
logrus.Info("Preparing download") | ||
|
||
version, err := commands.ParseVersion(req.GetVersion()) | ||
version, err := ParseVersion(req.GetVersion()) | ||
if err != nil { | ||
return nil, err | ||
} | ||
|
Oops, something went wrong.