forked from Plemya-x/ALR
		
	feat: add autoPull in config
This commit is contained in:
		
							
								
								
									
										10
									
								
								build.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								build.go
									
									
									
									
									
								
							@@ -65,10 +65,12 @@ func BuildCmd() *cli.Command {
 | 
			
		||||
				script = filepath.Join(config.GetPaths(ctx).RepoDir, c.String("package"), "alr.sh")
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error pulling repositories"), "err", err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			if config.GetInstance(ctx).AutoPull(ctx) {
 | 
			
		||||
				err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					slog.Error(gotext.Get("Error pulling repositories"), "err", err)
 | 
			
		||||
					os.Exit(1)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			mgr := manager.Detect()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								info.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								info.go
									
									
									
									
									
								
							@@ -52,6 +52,11 @@ func InfoCmd() *cli.Command {
 | 
			
		||||
 | 
			
		||||
			cfg := config.New()
 | 
			
		||||
			db := db.New(cfg)
 | 
			
		||||
			err := db.Init(ctx)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error initialization database"), "err", err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
			rs := repos.New(cfg, db)
 | 
			
		||||
 | 
			
		||||
			args := c.Args()
 | 
			
		||||
@@ -60,10 +65,12 @@ func InfoCmd() *cli.Command {
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			err := rs.Pull(ctx, cfg.Repos(ctx))
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error pulling repositories"))
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			if cfg.AutoPull(ctx) {
 | 
			
		||||
				err := rs.Pull(ctx, cfg.Repos(ctx))
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					slog.Error(gotext.Get("Error pulling repos"), "err", err)
 | 
			
		||||
					os.Exit(1)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			found, _, err := rs.FindPkgs(ctx, args.Slice())
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								install.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								install.go
									
									
									
									
									
								
							@@ -64,10 +64,12 @@ func InstallCmd() *cli.Command {
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error pulling repositories"), "err", err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			if config.GetInstance(ctx).AutoPull(ctx) {
 | 
			
		||||
				err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					slog.Error(gotext.Get("Error pulling repositories"), "err", err)
 | 
			
		||||
					os.Exit(1)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			found, notFound, err := repos.FindPkgs(ctx, args.Slice())
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,7 @@ var defaultConfig = &types.Config{
 | 
			
		||||
	RootCmd:          "sudo",
 | 
			
		||||
	PagerStyle:       "native",
 | 
			
		||||
	IgnorePkgUpdates: []string{},
 | 
			
		||||
	AutoPull:         true,
 | 
			
		||||
	Repos: []types.Repo{
 | 
			
		||||
		{
 | 
			
		||||
			Name: "default",
 | 
			
		||||
@@ -162,3 +163,10 @@ func (c *ALRConfig) IgnorePkgUpdates(ctx context.Context) []string {
 | 
			
		||||
	})
 | 
			
		||||
	return c.cfg.IgnorePkgUpdates
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *ALRConfig) AutoPull(ctx context.Context) bool {
 | 
			
		||||
	c.cfgOnce.Do(func() {
 | 
			
		||||
		c.Load(ctx)
 | 
			
		||||
	})
 | 
			
		||||
	return c.cfg.AutoPull
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -26,23 +26,23 @@ msgid ""
 | 
			
		||||
"Build package from scratch even if there's an already built package available"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:70
 | 
			
		||||
msgid "Error pulling repositories"
 | 
			
		||||
#: build.go:71
 | 
			
		||||
msgid "Error pulling repos"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:76
 | 
			
		||||
#: build.go:78
 | 
			
		||||
msgid "Unable to detect a supported package manager on the system"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:87
 | 
			
		||||
#: build.go:89
 | 
			
		||||
msgid "Error building package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:93
 | 
			
		||||
#: build.go:95
 | 
			
		||||
msgid "Error getting working directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:101
 | 
			
		||||
#: build.go:103
 | 
			
		||||
msgid "Error moving the package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -66,10 +66,6 @@ msgstr ""
 | 
			
		||||
msgid "Unable to create new cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: fix.go:62
 | 
			
		||||
msgid "Error pulling repos"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: fix.go:66
 | 
			
		||||
msgid "Done"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -110,43 +106,51 @@ msgstr ""
 | 
			
		||||
msgid "Command info expected at least 1 argument, got %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:71
 | 
			
		||||
#: info.go:73
 | 
			
		||||
msgid "Error finding packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:87
 | 
			
		||||
#: info.go:89
 | 
			
		||||
msgid "Error parsing os-release file"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:96
 | 
			
		||||
#: info.go:98
 | 
			
		||||
msgid "Error resolving overrides"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:105 info.go:111
 | 
			
		||||
#: info.go:107 info.go:113
 | 
			
		||||
msgid "Error encoding script variables"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:43
 | 
			
		||||
msgid "Install a new package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:57
 | 
			
		||||
msgid "Command install expected at least 1 argument, got %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:90
 | 
			
		||||
#: install.go:70
 | 
			
		||||
msgid "Error pulling repositories"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:92
 | 
			
		||||
msgid "Error getting packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:99
 | 
			
		||||
#: install.go:101
 | 
			
		||||
msgid "Error iterating over packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:112
 | 
			
		||||
#: install.go:114
 | 
			
		||||
msgid "Remove an installed package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:117
 | 
			
		||||
#: install.go:119
 | 
			
		||||
msgid "Command remove expected at least 1 argument, got %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:129
 | 
			
		||||
#: install.go:131
 | 
			
		||||
msgid "Error removing packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -174,39 +178,39 @@ msgstr ""
 | 
			
		||||
msgid "Choose which optional package(s) to install"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:63
 | 
			
		||||
#: internal/config/config.go:64
 | 
			
		||||
msgid "Error opening config file, using defaults"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:76
 | 
			
		||||
#: internal/config/config.go:77
 | 
			
		||||
msgid "Error decoding config file, using defaults"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:88
 | 
			
		||||
#: internal/config/config.go:89
 | 
			
		||||
msgid "Unable to detect user config directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:96
 | 
			
		||||
#: internal/config/config.go:97
 | 
			
		||||
msgid "Unable to create ALR config directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:105
 | 
			
		||||
#: internal/config/config.go:106
 | 
			
		||||
msgid "Unable to create ALR config file"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:111
 | 
			
		||||
#: internal/config/config.go:112
 | 
			
		||||
msgid "Error encoding default configuration"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:120
 | 
			
		||||
#: internal/config/config.go:121
 | 
			
		||||
msgid "Unable to detect cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:130
 | 
			
		||||
#: internal/config/config.go:131
 | 
			
		||||
msgid "Unable to create repo cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:136
 | 
			
		||||
#: internal/config/config.go:137
 | 
			
		||||
msgid "Unable to create package cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -255,7 +259,7 @@ msgstr ""
 | 
			
		||||
msgid "Error initialization database"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: list.go:88
 | 
			
		||||
#: list.go:91
 | 
			
		||||
msgid "Error listing installed packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -437,6 +441,6 @@ msgstr ""
 | 
			
		||||
msgid "Upgrade all installed packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: upgrade.go:79
 | 
			
		||||
#: upgrade.go:83
 | 
			
		||||
msgid "Error checking for updates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -34,23 +34,23 @@ msgid ""
 | 
			
		||||
"Build package from scratch even if there's an already built package available"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:70
 | 
			
		||||
msgid "Error pulling repositories"
 | 
			
		||||
#: build.go:71
 | 
			
		||||
msgid "Error pulling repos"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:76
 | 
			
		||||
#: build.go:78
 | 
			
		||||
msgid "Unable to detect a supported package manager on the system"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:87
 | 
			
		||||
#: build.go:89
 | 
			
		||||
msgid "Error building package"
 | 
			
		||||
msgstr "Ошибка при сборке пакета"
 | 
			
		||||
 | 
			
		||||
#: build.go:93
 | 
			
		||||
#: build.go:95
 | 
			
		||||
msgid "Error getting working directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: build.go:101
 | 
			
		||||
#: build.go:103
 | 
			
		||||
msgid "Error moving the package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -74,10 +74,6 @@ msgstr ""
 | 
			
		||||
msgid "Unable to create new cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: fix.go:62
 | 
			
		||||
msgid "Error pulling repos"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: fix.go:66
 | 
			
		||||
msgid "Done"
 | 
			
		||||
msgstr ""
 | 
			
		||||
@@ -118,43 +114,51 @@ msgstr "Показывать всю информацию, а не только 
 | 
			
		||||
msgid "Command info expected at least 1 argument, got %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:71
 | 
			
		||||
#: info.go:73
 | 
			
		||||
msgid "Error finding packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:87
 | 
			
		||||
#: info.go:89
 | 
			
		||||
msgid "Error parsing os-release file"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:96
 | 
			
		||||
#: info.go:98
 | 
			
		||||
msgid "Error resolving overrides"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: info.go:105 info.go:111
 | 
			
		||||
#: info.go:107 info.go:113
 | 
			
		||||
msgid "Error encoding script variables"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:43
 | 
			
		||||
msgid "Install a new package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:57
 | 
			
		||||
msgid "Command install expected at least 1 argument, got %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:90
 | 
			
		||||
#: install.go:70
 | 
			
		||||
msgid "Error pulling repositories"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:92
 | 
			
		||||
msgid "Error getting packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:99
 | 
			
		||||
#: install.go:101
 | 
			
		||||
msgid "Error iterating over packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:112
 | 
			
		||||
#: install.go:114
 | 
			
		||||
msgid "Remove an installed package"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:117
 | 
			
		||||
#: install.go:119
 | 
			
		||||
msgid "Command remove expected at least 1 argument, got %d"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: install.go:129
 | 
			
		||||
#: install.go:131
 | 
			
		||||
msgid "Error removing packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -182,39 +186,39 @@ msgstr ""
 | 
			
		||||
msgid "Choose which optional package(s) to install"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:63
 | 
			
		||||
#: internal/config/config.go:64
 | 
			
		||||
msgid "Error opening config file, using defaults"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:76
 | 
			
		||||
#: internal/config/config.go:77
 | 
			
		||||
msgid "Error decoding config file, using defaults"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:88
 | 
			
		||||
#: internal/config/config.go:89
 | 
			
		||||
msgid "Unable to detect user config directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:96
 | 
			
		||||
#: internal/config/config.go:97
 | 
			
		||||
msgid "Unable to create ALR config directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:105
 | 
			
		||||
#: internal/config/config.go:106
 | 
			
		||||
msgid "Unable to create ALR config file"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:111
 | 
			
		||||
#: internal/config/config.go:112
 | 
			
		||||
msgid "Error encoding default configuration"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:120
 | 
			
		||||
#: internal/config/config.go:121
 | 
			
		||||
msgid "Unable to detect cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:130
 | 
			
		||||
#: internal/config/config.go:131
 | 
			
		||||
msgid "Unable to create repo cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: internal/config/config.go:136
 | 
			
		||||
#: internal/config/config.go:137
 | 
			
		||||
msgid "Unable to create package cache directory"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -263,7 +267,7 @@ msgstr ""
 | 
			
		||||
msgid "Error initialization database"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: list.go:88
 | 
			
		||||
#: list.go:91
 | 
			
		||||
msgid "Error listing installed packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
@@ -446,6 +450,6 @@ msgstr ""
 | 
			
		||||
msgid "Upgrade all installed packages"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 | 
			
		||||
#: upgrade.go:79
 | 
			
		||||
#: upgrade.go:83
 | 
			
		||||
msgid "Error checking for updates"
 | 
			
		||||
msgstr ""
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ type Config struct {
 | 
			
		||||
	IgnorePkgUpdates []string `toml:"ignorePkgUpdates"`
 | 
			
		||||
	Repos            []Repo   `toml:"repo"`
 | 
			
		||||
	Unsafe           Unsafe   `toml:"unsafe"`
 | 
			
		||||
	AutoPull         bool     `toml:"autoPull"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Repo represents a ALR repo within a configuration file
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								list.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								list.go
									
									
									
									
									
								
							@@ -55,10 +55,13 @@ func ListCmd() *cli.Command {
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
			rs := repos.New(cfg, db)
 | 
			
		||||
			err = rs.Pull(ctx, cfg.Repos(ctx))
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error pulling repositories"), "err", err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
 | 
			
		||||
			if cfg.AutoPull(ctx) {
 | 
			
		||||
				err = rs.Pull(ctx, cfg.Repos(ctx))
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					slog.Error(gotext.Get("Error pulling repositories"), "err", err)
 | 
			
		||||
					os.Exit(1)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			where := "true"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								upgrade.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								upgrade.go
									
									
									
									
									
								
							@@ -56,6 +56,8 @@ func UpgradeCmd() *cli.Command {
 | 
			
		||||
		Action: func(c *cli.Context) error {
 | 
			
		||||
			ctx := c.Context
 | 
			
		||||
 | 
			
		||||
			cfg := config.GetInstance(ctx)
 | 
			
		||||
 | 
			
		||||
			info, err := distro.ParseOSRelease(ctx)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error parsing os-release file"), "err", err)
 | 
			
		||||
@@ -68,10 +70,12 @@ func UpgradeCmd() *cli.Command {
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			err = repos.Pull(ctx, config.Config(ctx).Repos)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				slog.Error(gotext.Get("Error pulling repos"), "err", err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			if cfg.AutoPull(ctx) {
 | 
			
		||||
				err = repos.Pull(ctx, config.Config(ctx).Repos)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					slog.Error(gotext.Get("Error pulling repos"), "err", err)
 | 
			
		||||
					os.Exit(1)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			updates, err := checkForUpdates(ctx, mgr, info)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user