forked from Plemya-x/ALR
		
	refactor: migrate list command to struct API
This commit is contained in:
		@@ -34,6 +34,7 @@ type ALRConfig struct {
 | 
				
			|||||||
	cfg   *types.Config
 | 
						cfg   *types.Config
 | 
				
			||||||
	paths *Paths
 | 
						paths *Paths
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						cfgOnce   sync.Once
 | 
				
			||||||
	pathsOnce sync.Once
 | 
						pathsOnce sync.Once
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -126,3 +127,17 @@ func (c *ALRConfig) GetPaths(ctx context.Context) *Paths {
 | 
				
			|||||||
	})
 | 
						})
 | 
				
			||||||
	return c.paths
 | 
						return c.paths
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *ALRConfig) Repos(ctx context.Context) []types.Repo {
 | 
				
			||||||
 | 
						c.cfgOnce.Do(func() {
 | 
				
			||||||
 | 
							c.Load(ctx)
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						return c.cfg.Repos
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (c *ALRConfig) IgnorePkgUpdates(ctx context.Context) []string {
 | 
				
			||||||
 | 
						c.cfgOnce.Do(func() {
 | 
				
			||||||
 | 
							c.Load(ctx)
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						return c.cfg.IgnorePkgUpdates
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								list.go
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								list.go
									
									
									
									
									
								
							@@ -22,12 +22,12 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/urfave/cli/v2"
 | 
						"github.com/urfave/cli/v2"
 | 
				
			||||||
 | 
						"golang.org/x/exp/slices"
 | 
				
			||||||
	"plemya-x.ru/alr/internal/config"
 | 
						"plemya-x.ru/alr/internal/config"
 | 
				
			||||||
	"plemya-x.ru/alr/internal/db"
 | 
						database "plemya-x.ru/alr/internal/db"
 | 
				
			||||||
	"plemya-x.ru/alr/pkg/loggerctx"
 | 
						"plemya-x.ru/alr/pkg/loggerctx"
 | 
				
			||||||
	"plemya-x.ru/alr/pkg/manager"
 | 
						"plemya-x.ru/alr/pkg/manager"
 | 
				
			||||||
	"plemya-x.ru/alr/pkg/repos"
 | 
						"plemya-x.ru/alr/pkg/repos"
 | 
				
			||||||
	"golang.org/x/exp/slices"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var listCmd = &cli.Command{
 | 
					var listCmd = &cli.Command{
 | 
				
			||||||
@@ -43,8 +43,15 @@ var listCmd = &cli.Command{
 | 
				
			|||||||
	Action: func(c *cli.Context) error {
 | 
						Action: func(c *cli.Context) error {
 | 
				
			||||||
		ctx := c.Context
 | 
							ctx := c.Context
 | 
				
			||||||
		log := loggerctx.From(ctx)
 | 
							log := loggerctx.From(ctx)
 | 
				
			||||||
 | 
							cfg := config.New()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
							db := database.New(cfg)
 | 
				
			||||||
 | 
							err := db.Init(ctx)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								log.Fatal("Error initialization database").Err(err).Send()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							err = repos.Pull(ctx, cfg.Repos(ctx))
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			log.Fatal("Error pulling repositories").Err(err).Send()
 | 
								log.Fatal("Error pulling repositories").Err(err).Send()
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -76,13 +83,13 @@ var listCmd = &cli.Command{
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		for result.Next() {
 | 
							for result.Next() {
 | 
				
			||||||
			var pkg db.Package
 | 
								var pkg database.Package
 | 
				
			||||||
			err := result.StructScan(&pkg)
 | 
								err := result.StructScan(&pkg)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if slices.Contains(config.Config(ctx).IgnorePkgUpdates, pkg.Name) {
 | 
								if slices.Contains(cfg.IgnorePkgUpdates(ctx), pkg.Name) {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user