Skip to content

Commit 815b7b8

Browse files
committed
unify getPackages func, move table usage in cmd level
1 parent 181044d commit 815b7b8

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

cmd/kndp/registry/search.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"github.com/charmbracelet/log"
77
"github.com/kndpio/kndp/internal/search"
8+
"github.com/pterm/pterm"
89
"k8s.io/client-go/kubernetes"
910
"k8s.io/client-go/rest"
1011
)
@@ -17,9 +18,14 @@ type SearchCmd struct {
1718
}
1819

1920
func (c *SearchCmd) Run(ctx context.Context, client *kubernetes.Clientset, config *rest.Config, logger *log.Logger) error {
20-
err := search.SearchCmd(ctx, client, config, c.Query, c.Versions, logger)
21+
tableRegs, err := search.SearchPackages(ctx, client, config, c.Query, c.Versions, logger)
2122
if err != nil {
2223
return err
2324
}
25+
if len(tableRegs) <= 1 {
26+
logger.Info("No packages found")
27+
} else {
28+
pterm.DefaultTable.WithHasHeader().WithData(tableRegs).Render()
29+
}
2430
return nil
2531
}

internal/github/github.go

+5-10
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import (
1212
"github.com/google/go-github/v61/github"
1313
)
1414

15-
// GetGithubPackages list packages and their versions from GitHub Container Registry
16-
func GetGithubPackages(ctx context.Context, query string, version bool, r *registry.Registry, registryUrl string, org string, logger *log.Logger) ([]*github.Package, map[string][]*github.PackageVersion, error) {
15+
// GetPackages list packages and their versions from Container Registry
16+
func GetPackages(ctx context.Context, query string, version bool, r *registry.Registry, registryUrl string, org string, logger *log.Logger) (pterm.TableData, error) {
1717
auth := registry.RegistryConfig{}
1818
json.Unmarshal([]byte(r.Data[".dockerconfigjson"]), &auth)
1919
clientgh := github.NewClient(nil).WithAuthToken(auth.Auths[registryUrl].Password)
@@ -25,15 +25,15 @@ func GetGithubPackages(ctx context.Context, query string, version bool, r *regis
2525
pkgs, _, err := clientgh.Organizations.ListPackages(ctx, org, &github.PackageListOptions{PackageType: &pkgType})
2626
if err != nil {
2727
logger.Errorf("Cannot get packages from %s", registryUrl)
28-
return nil, nil, err
28+
return nil, err
2929
}
3030

3131
pkgVersions := make(map[string][]*github.PackageVersion)
3232
for _, pkg := range pkgs {
3333
versions, _, err := clientgh.Organizations.PackageGetAllVersions(ctx, org, pkgType, pkg.GetName(), nil)
3434
if err != nil {
3535
logger.Errorf("Cannot get package versions for %s/%s", org, *pkg.Name)
36-
return nil, nil, err
36+
return nil, err
3737
}
3838
if !version {
3939
if len(versions) > 0 {
@@ -59,11 +59,6 @@ func GetGithubPackages(ctx context.Context, query string, version bool, r *regis
5959
}
6060
}
6161
}
62-
if len(tableRegs) <= 1 {
63-
logger.Info("No packages found")
64-
} else {
65-
pterm.DefaultTable.WithHasHeader().WithData(tableRegs).Render()
66-
}
6762

68-
return pkgs, pkgVersions, nil
63+
return tableRegs, nil
6964
}

internal/search/search.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@ import (
66
"strings"
77

88
"github.com/charmbracelet/log"
9+
"github.com/pterm/pterm"
910

1011
"github.com/kndpio/kndp/internal/github"
1112
"github.com/kndpio/kndp/internal/registry"
1213
"k8s.io/client-go/kubernetes"
1314
"k8s.io/client-go/rest"
1415
)
1516

16-
func SearchCmd(ctx context.Context, client *kubernetes.Clientset, config *rest.Config, query string, versions bool, logger *log.Logger) error {
17+
func SearchPackages(ctx context.Context, client *kubernetes.Clientset, config *rest.Config, query string, versions bool, logger *log.Logger) (pterm.TableData, error) {
1718
registries, err := registry.Registries(ctx, client)
1819
if err != nil {
1920
logger.Error("Cannot get registries")
20-
return err
21+
return nil, err
2122
}
2223

2324
for _, r := range registries {
@@ -27,15 +28,15 @@ func SearchCmd(ctx context.Context, client *kubernetes.Clientset, config *rest.C
2728
// Switch statement to handle different registry types
2829
switch {
2930
case strings.Contains(registryUrl, "ghcr.io"):
30-
_, _, err := github.GetGithubPackages(ctx, query, versions, r, registryUrl, org, logger)
31+
tableRegs, err := github.GetPackages(ctx, query, versions, r, registryUrl, org, logger)
3132
if err != nil {
32-
return err
33+
return nil, err
3334
}
34-
35+
return tableRegs, nil
3536
default:
3637
logger.Errorf("Registry %s is not supported", registryUrl)
3738
}
3839

3940
}
40-
return nil
41+
return nil, err
4142
}

0 commit comments

Comments
 (0)