refactor(db, config, repos): migrate from functions to struct #9
| @@ -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