This commit is contained in:
2025-04-13 20:22:32 +03:00
parent b8cb7af3bb
commit e3aaa88822
8 changed files with 139 additions and 109 deletions

View File

@ -53,6 +53,14 @@ func New(ctx context.Context) *AppBuilder {
return &AppBuilder{ctx: ctx}
}
func (b *AppBuilder) UseConfig(cfg *config.ALRConfig) *AppBuilder {
if b.err != nil {
return b
}
b.deps.Cfg = cfg
return b
}
func (b *AppBuilder) WithConfig() *AppBuilder {
if b.err != nil {
return b
@ -92,16 +100,21 @@ func (b *AppBuilder) WithDB() *AppBuilder {
}
func (b *AppBuilder) WithRepos() *AppBuilder {
b.withRepos(false)
b.withRepos(true, false)
return b
}
func (b *AppBuilder) WithReposForcePull() *AppBuilder {
b.withRepos(true)
b.withRepos(true, true)
return b
}
func (b *AppBuilder) withRepos(forcePull bool) *AppBuilder {
func (b *AppBuilder) WithReposNoPull() *AppBuilder {
b.withRepos(false, false)
return b
}
func (b *AppBuilder) withRepos(enablePull, forcePull bool) *AppBuilder {
if b.err != nil {
return b
}
@ -115,7 +128,7 @@ func (b *AppBuilder) withRepos(forcePull bool) *AppBuilder {
rs := repos.New(cfg, db)
if forcePull || cfg.AutoPull() {
if enablePull && (forcePull || cfg.AutoPull()) {
if err := rs.Pull(b.ctx, cfg.Repos()); err != nil {
slog.Error(gotext.Get("Error pulling repositories"), "err", err)
b.err = cli.Exit("", 1)

View File

@ -17,6 +17,7 @@
package cliutils
import (
"errors"
"fmt"
"log/slog"
@ -52,5 +53,8 @@ func FormatCliExit(msg string, err error) cli.ExitCoder {
}
func FormatCliExitWithCode(msg string, err error, exitCode int) cli.ExitCoder {
if err == nil {
return cli.Exit(errors.New(msg), exitCode)
}
return cli.Exit(fmt.Errorf("%s: %w", msg, err), exitCode)
}

View File

@ -166,31 +166,31 @@ msgstr ""
msgid "Error encoding script variables"
msgstr ""
#: install.go:44
#: install.go:45
msgid "Install a new package"
msgstr ""
#: install.go:58
#: install.go:59
msgid "Command install expected at least 1 argument, got %d"
msgstr ""
#: install.go:94
#: install.go:95
msgid "Error pulling repositories"
msgstr ""
#: install.go:157
#: install.go:158
msgid "Remove an installed package"
msgstr ""
#: install.go:180
#: install.go:181
msgid "Error listing installed packages"
msgstr ""
#: install.go:217
#: install.go:222
msgid "Command remove expected at least 1 argument, got %d"
msgstr ""
#: install.go:232
#: install.go:235
msgid "Error removing packages"
msgstr ""
@ -419,51 +419,47 @@ msgid ""
"updating ALR if something doesn't work."
msgstr ""
#: repo.go:43
#: repo.go:40
msgid "Add a new repository"
msgstr ""
#: repo.go:50
#: repo.go:47
msgid "Name of the new repo"
msgstr ""
#: repo.go:56
#: repo.go:53
msgid "URL of the new repo"
msgstr ""
#: repo.go:93 repo.go:169
#: repo.go:80
msgid "Repo %s already exists"
msgstr ""
#: repo.go:91 repo.go:169
msgid "Error saving config"
msgstr ""
#: repo.go:97
msgid "Can't drop privileges"
msgstr ""
#: repo.go:104 repo.go:110
msgid "Error pulling repos"
msgstr ""
#: repo.go:121
#: repo.go:117
msgid "Remove an existing repository"
msgstr ""
#: repo.go:128
#: repo.go:124
msgid "Name of the repo to be deleted"
msgstr ""
#: repo.go:156
#: repo.go:157
msgid "Repo does not exist"
msgstr ""
#: repo.go:164
#: repo.go:165
msgid "Error removing repo directory"
msgstr ""
#: repo.go:179
#: repo.go:188
msgid "Error removing packages from database"
msgstr ""
#: repo.go:190
#: repo.go:199
msgid "Pull all repositories that have changed"
msgstr ""
@ -507,6 +503,10 @@ msgstr ""
msgid "Upgrade all installed packages"
msgstr ""
#: upgrade.go:101
msgid "Error pulling repos"
msgstr ""
#: upgrade.go:107 upgrade.go:124
msgid "Error checking for updates"
msgstr ""

View File

@ -181,31 +181,31 @@ msgstr "Ошибка устранения переорпеделений"
msgid "Error encoding script variables"
msgstr "Ошибка кодирования переменных скрита"
#: install.go:44
#: install.go:45
msgid "Install a new package"
msgstr "Установить новый пакет"
#: install.go:58
#: install.go:59
msgid "Command install expected at least 1 argument, got %d"
msgstr "Для команды install ожидался хотя бы 1 аргумент, получено %d"
#: install.go:94
#: install.go:95
msgid "Error pulling repositories"
msgstr "Ошибка при извлечении репозиториев"
#: install.go:157
#: install.go:158
msgid "Remove an installed package"
msgstr "Удалить установленный пакет"
#: install.go:180
#: install.go:181
msgid "Error listing installed packages"
msgstr "Ошибка при составлении списка установленных пакетов"
#: install.go:217
#: install.go:222
msgid "Command remove expected at least 1 argument, got %d"
msgstr "Для команды remove ожидался хотя бы 1 аргумент, получено %d"
#: install.go:232
#: install.go:235
msgid "Error removing packages"
msgstr "Ошибка при удалении пакетов"
@ -441,52 +441,49 @@ msgstr ""
"Минимальная версия ALR для ALR-репозитория выше текущей версии. Попробуйте "
"обновить ALR, если что-то не работает."
#: repo.go:43
#: repo.go:40
msgid "Add a new repository"
msgstr "Добавить новый репозиторий"
#: repo.go:50
#: repo.go:47
msgid "Name of the new repo"
msgstr "Название нового репозитория"
#: repo.go:56
#: repo.go:53
msgid "URL of the new repo"
msgstr "URL-адрес нового репозитория"
#: repo.go:93 repo.go:169
#: repo.go:80
#, fuzzy
msgid "Repo %s already exists"
msgstr "Репозитория не существует"
#: repo.go:91 repo.go:169
#, fuzzy
msgid "Error saving config"
msgstr "Ошибка при кодировании конфигурации"
#: repo.go:97
msgid "Can't drop privileges"
msgstr ""
#: repo.go:104 repo.go:110
msgid "Error pulling repos"
msgstr "Ошибка при извлечении репозиториев"
#: repo.go:121
#: repo.go:117
msgid "Remove an existing repository"
msgstr "Удалить существующий репозиторий"
#: repo.go:128
#: repo.go:124
msgid "Name of the repo to be deleted"
msgstr "Название репозитория удалён"
#: repo.go:156
#: repo.go:157
msgid "Repo does not exist"
msgstr "Репозитория не существует"
#: repo.go:164
#: repo.go:165
msgid "Error removing repo directory"
msgstr "Ошибка при удалении каталога репозитория"
#: repo.go:179
#: repo.go:188
msgid "Error removing packages from database"
msgstr "Ошибка при удалении пакетов из базы данных"
#: repo.go:190
#: repo.go:199
msgid "Pull all repositories that have changed"
msgstr "Скачать все изменённые репозитории"
@ -531,6 +528,10 @@ msgstr "Ошибка при выполнении шаблона"
msgid "Upgrade all installed packages"
msgstr "Обновить все установленные пакеты"
#: upgrade.go:101
msgid "Error pulling repos"
msgstr "Ошибка при извлечении репозиториев"
#: upgrade.go:107 upgrade.go:124
msgid "Error checking for updates"
msgstr "Ошибка при проверке обновлений"

View File

@ -18,7 +18,6 @@ package utils
import (
"errors"
"log/slog"
"os"
"os/user"
"strconv"
@ -26,6 +25,8 @@ import (
"github.com/leonelquinteros/gotext"
"github.com/urfave/cli/v2"
"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils"
)
func GetUidGidAlrUserString() (string, string, error) {
@ -83,8 +84,7 @@ func DropCapsToAlrUser() error {
func ExitIfCantDropCapsToAlrUser() cli.ExitCoder {
err := DropCapsToAlrUser()
if err != nil {
slog.Debug("dropping capabilities error", "err", err)
return cli.Exit(gotext.Get("Error dropping capabilities"), 1)
return cliutils.FormatCliExit(gotext.Get("Error dropping capabilities"), err)
}
return nil
}