forked from Plemya-x/ALR
wip
This commit is contained in:
@ -26,13 +26,17 @@ import (
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/internal/db"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/distro"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/manager"
|
||||
"gitea.plemya-x.ru/Plemya-x/ALR/pkg/repos"
|
||||
)
|
||||
|
||||
type AppDeps struct {
|
||||
Cfg *config.ALRConfig
|
||||
DB *db.Database
|
||||
Repos *repos.Repos
|
||||
Cfg *config.ALRConfig
|
||||
DB *db.Database
|
||||
Repos *repos.Repos
|
||||
Info *distro.OSRelease
|
||||
Manager manager.Manager
|
||||
}
|
||||
|
||||
func (d *AppDeps) Defer() {
|
||||
@ -138,6 +142,32 @@ func (b *AppBuilder) withRepos(enablePull, forcePull bool) *AppBuilder {
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *AppBuilder) WithDistroInfo() *AppBuilder {
|
||||
if b.err != nil {
|
||||
return b
|
||||
}
|
||||
|
||||
b.deps.Info, b.err = distro.ParseOSRelease(b.ctx)
|
||||
if b.err != nil {
|
||||
b.err = cliutils.FormatCliExit(gotext.Get("Error parsing os release"), b.err)
|
||||
}
|
||||
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *AppBuilder) WithManager() *AppBuilder {
|
||||
if b.err != nil {
|
||||
return b
|
||||
}
|
||||
|
||||
mgr := manager.Detect()
|
||||
if mgr == nil {
|
||||
b.err = cliutils.FormatCliExit(gotext.Get("Unable to detect a supported package manager on the system"), nil)
|
||||
}
|
||||
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *AppBuilder) Build() (*AppDeps, error) {
|
||||
if b.err != nil {
|
||||
return nil, b.err
|
||||
|
Reference in New Issue
Block a user