feat: add skiplists for auto_req and auto_prov
This commit is contained in:
@ -123,15 +123,29 @@ func (d *Decoder) DecodeVars(val any) error {
|
||||
}
|
||||
|
||||
rVal := reflect.ValueOf(val).Elem()
|
||||
return d.decodeStruct(rVal)
|
||||
}
|
||||
|
||||
func (d *Decoder) decodeStruct(rVal reflect.Value) error {
|
||||
for i := 0; i < rVal.NumField(); i++ {
|
||||
field := rVal.Field(i)
|
||||
fieldType := rVal.Type().Field(i)
|
||||
|
||||
// Пропускаем неэкспортируемые поля
|
||||
if !fieldType.IsExported() {
|
||||
continue
|
||||
}
|
||||
|
||||
// Обрабатываем встроенные поля рекурсивно
|
||||
if fieldType.Anonymous {
|
||||
if field.Kind() == reflect.Struct {
|
||||
if err := d.decodeStruct(field); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
name := fieldType.Name
|
||||
tag := fieldType.Tag.Get("sh")
|
||||
required := false
|
||||
@ -160,7 +174,6 @@ func (d *Decoder) DecodeVars(val any) error {
|
||||
|
||||
field.Set(newVal.Elem())
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -337,92 +337,92 @@ msgstr ""
|
||||
msgid "Error while running app"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:156
|
||||
#: pkg/build/build.go:157
|
||||
msgid "Failed to prompt user to view build script"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:160
|
||||
#: pkg/build/build.go:161
|
||||
msgid "Building package"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:208
|
||||
#: pkg/build/build.go:209
|
||||
msgid "The checksums array must be the same length as sources"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:235
|
||||
#: pkg/build/build.go:238
|
||||
msgid "Downloading sources"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:257
|
||||
#: pkg/build/build.go:260
|
||||
msgid "Building package metadata"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:279
|
||||
#: pkg/build/build.go:282
|
||||
msgid "Compressing package"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:438
|
||||
#: pkg/build/build.go:441
|
||||
msgid ""
|
||||
"Your system's CPU architecture doesn't match this package. Do you want to "
|
||||
"build anyway?"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:452
|
||||
#: pkg/build/build.go:455
|
||||
msgid "This package is already installed"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:476
|
||||
#: pkg/build/build.go:479
|
||||
msgid "Installing build dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:521
|
||||
#: pkg/build/build.go:524
|
||||
msgid "Installing dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:602
|
||||
#: pkg/build/build.go:605
|
||||
msgid "Would you like to remove the build dependencies?"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:665
|
||||
#: pkg/build/build.go:668
|
||||
msgid "Executing prepare()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:675
|
||||
#: pkg/build/build.go:678
|
||||
msgid "Executing build()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:705 pkg/build/build.go:725
|
||||
#: pkg/build/build.go:708 pkg/build/build.go:728
|
||||
msgid "Executing %s()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:784
|
||||
#: pkg/build/build.go:787
|
||||
msgid "Error installing native packages"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:808
|
||||
#: pkg/build/build.go:811
|
||||
msgid "Error installing package"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:867
|
||||
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:878
|
||||
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/findDeps.go:35
|
||||
#: pkg/build/find_deps/alt_linux.go:35
|
||||
msgid "Command not found on the system"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/findDeps.go:82
|
||||
#: pkg/build/find_deps/alt_linux.go:86
|
||||
msgid "Provided dependency found"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/findDeps.go:89
|
||||
#: pkg/build/find_deps/alt_linux.go:93
|
||||
msgid "Required dependency found"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/find_deps/empty.go:32
|
||||
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/find_deps/empty.go:37
|
||||
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/repos/pull.go:79
|
||||
msgid "Pulling repository"
|
||||
msgstr ""
|
||||
|
@ -349,31 +349,31 @@ msgstr "Показать справку"
|
||||
msgid "Error while running app"
|
||||
msgstr "Ошибка при запуске приложения"
|
||||
|
||||
#: pkg/build/build.go:156
|
||||
#: pkg/build/build.go:157
|
||||
msgid "Failed to prompt user to view build script"
|
||||
msgstr "Не удалось предложить пользователю просмотреть скрипт сборки"
|
||||
|
||||
#: pkg/build/build.go:160
|
||||
#: pkg/build/build.go:161
|
||||
msgid "Building package"
|
||||
msgstr "Сборка пакета"
|
||||
|
||||
#: pkg/build/build.go:208
|
||||
#: pkg/build/build.go:209
|
||||
msgid "The checksums array must be the same length as sources"
|
||||
msgstr "Массив контрольных сумм должен быть той же длины, что и источники"
|
||||
|
||||
#: pkg/build/build.go:235
|
||||
#: pkg/build/build.go:238
|
||||
msgid "Downloading sources"
|
||||
msgstr "Скачивание источников"
|
||||
|
||||
#: pkg/build/build.go:257
|
||||
#: pkg/build/build.go:260
|
||||
msgid "Building package metadata"
|
||||
msgstr "Сборка метаданных пакета"
|
||||
|
||||
#: pkg/build/build.go:279
|
||||
#: pkg/build/build.go:282
|
||||
msgid "Compressing package"
|
||||
msgstr "Сжатие пакета"
|
||||
|
||||
#: pkg/build/build.go:438
|
||||
#: pkg/build/build.go:441
|
||||
msgid ""
|
||||
"Your system's CPU architecture doesn't match this package. Do you want to "
|
||||
"build anyway?"
|
||||
@ -381,64 +381,64 @@ msgstr ""
|
||||
"Архитектура процессора вашей системы не соответствует этому пакету. Вы все "
|
||||
"равно хотите выполнить сборку?"
|
||||
|
||||
#: pkg/build/build.go:452
|
||||
#: pkg/build/build.go:455
|
||||
msgid "This package is already installed"
|
||||
msgstr "Этот пакет уже установлен"
|
||||
|
||||
#: pkg/build/build.go:476
|
||||
#: pkg/build/build.go:479
|
||||
msgid "Installing build dependencies"
|
||||
msgstr "Установка зависимостей сборки"
|
||||
|
||||
#: pkg/build/build.go:521
|
||||
#: pkg/build/build.go:524
|
||||
msgid "Installing dependencies"
|
||||
msgstr "Установка зависимостей"
|
||||
|
||||
#: pkg/build/build.go:602
|
||||
#: pkg/build/build.go:605
|
||||
msgid "Would you like to remove the build dependencies?"
|
||||
msgstr "Хотели бы вы удалить зависимости сборки?"
|
||||
|
||||
#: pkg/build/build.go:665
|
||||
#: pkg/build/build.go:668
|
||||
msgid "Executing prepare()"
|
||||
msgstr "Исполнение prepare()"
|
||||
|
||||
#: pkg/build/build.go:675
|
||||
#: pkg/build/build.go:678
|
||||
msgid "Executing build()"
|
||||
msgstr "Исполнение build()"
|
||||
|
||||
#: pkg/build/build.go:705 pkg/build/build.go:725
|
||||
#: pkg/build/build.go:708 pkg/build/build.go:728
|
||||
msgid "Executing %s()"
|
||||
msgstr "Исполнение %s()"
|
||||
|
||||
#: pkg/build/build.go:784
|
||||
#: pkg/build/build.go:787
|
||||
msgid "Error installing native packages"
|
||||
msgstr "Ошибка при установке нативных пакетов"
|
||||
|
||||
#: pkg/build/build.go:808
|
||||
#: pkg/build/build.go:811
|
||||
msgid "Error installing package"
|
||||
msgstr "Ошибка при установке пакета"
|
||||
|
||||
#: pkg/build/build.go:867
|
||||
#: pkg/build/find_deps/alt_linux.go:35
|
||||
msgid "Command not found on the system"
|
||||
msgstr "Команда не найдена в системе"
|
||||
|
||||
#: pkg/build/find_deps/alt_linux.go:86
|
||||
msgid "Provided dependency found"
|
||||
msgstr "Найденная предоставленная зависимость"
|
||||
|
||||
#: pkg/build/find_deps/alt_linux.go:93
|
||||
msgid "Required dependency found"
|
||||
msgstr "Найдена требуемая зависимость"
|
||||
|
||||
#: pkg/build/find_deps/empty.go:32
|
||||
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
||||
msgstr ""
|
||||
"AutoProv не реализовано для этого формата пакета, поэтому будет пропущено"
|
||||
|
||||
#: pkg/build/build.go:878
|
||||
#: pkg/build/find_deps/empty.go:37
|
||||
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
||||
msgstr ""
|
||||
"AutoReq не реализовано для этого формата пакета, поэтому будет пропущено"
|
||||
|
||||
#: pkg/build/findDeps.go:35
|
||||
msgid "Command not found on the system"
|
||||
msgstr "Команда не найдена в системе"
|
||||
|
||||
#: pkg/build/findDeps.go:82
|
||||
msgid "Provided dependency found"
|
||||
msgstr "Найденная предоставленная зависимость"
|
||||
|
||||
#: pkg/build/findDeps.go:89
|
||||
msgid "Required dependency found"
|
||||
msgstr "Найдена требуемая зависимость"
|
||||
|
||||
#: pkg/repos/pull.go:79
|
||||
msgid "Pulling repository"
|
||||
msgstr "Скачивание репозитория"
|
||||
|
@ -31,79 +31,44 @@ type BuildOpts struct {
|
||||
}
|
||||
|
||||
type BuildVarsPre struct {
|
||||
Version string `sh:"version,required"`
|
||||
Release int `sh:"release,required"`
|
||||
Epoch uint `sh:"epoch"`
|
||||
Description string `sh:"desc"`
|
||||
Homepage string `sh:"homepage"`
|
||||
Maintainer string `sh:"maintainer"`
|
||||
Architectures []string `sh:"architectures"`
|
||||
Licenses []string `sh:"license"`
|
||||
Provides []string `sh:"provides"`
|
||||
Conflicts []string `sh:"conflicts"`
|
||||
Depends []string `sh:"deps"`
|
||||
BuildDepends []string `sh:"build_deps"`
|
||||
OptDepends []string `sh:"opt_deps"`
|
||||
Replaces []string `sh:"replaces"`
|
||||
Sources []string `sh:"sources"`
|
||||
Checksums []string `sh:"checksums"`
|
||||
Backup []string `sh:"backup"`
|
||||
Scripts Scripts `sh:"scripts"`
|
||||
AutoReq []string `sh:"auto_req"`
|
||||
AutoProv []string `sh:"auto_prov"`
|
||||
Version string `sh:"version,required"`
|
||||
Release int `sh:"release,required"`
|
||||
Epoch uint `sh:"epoch"`
|
||||
Description string `sh:"desc"`
|
||||
Homepage string `sh:"homepage"`
|
||||
Maintainer string `sh:"maintainer"`
|
||||
Architectures []string `sh:"architectures"`
|
||||
Licenses []string `sh:"license"`
|
||||
Provides []string `sh:"provides"`
|
||||
Conflicts []string `sh:"conflicts"`
|
||||
Depends []string `sh:"deps"`
|
||||
BuildDepends []string `sh:"build_deps"`
|
||||
OptDepends []string `sh:"opt_deps"`
|
||||
Replaces []string `sh:"replaces"`
|
||||
Sources []string `sh:"sources"`
|
||||
Checksums []string `sh:"checksums"`
|
||||
Backup []string `sh:"backup"`
|
||||
Scripts Scripts `sh:"scripts"`
|
||||
AutoReq []string `sh:"auto_req"`
|
||||
AutoProv []string `sh:"auto_prov"`
|
||||
AutoReqSkipList []string `sh:"auto_req_skiplist"`
|
||||
AutoProvSkipList []string `sh:"auto_prov_skiplist"`
|
||||
}
|
||||
|
||||
func (bv *BuildVarsPre) ToBuildVars() BuildVars {
|
||||
return BuildVars{
|
||||
Name: "",
|
||||
Version: bv.Version,
|
||||
Release: bv.Release,
|
||||
Epoch: bv.Epoch,
|
||||
Description: bv.Description,
|
||||
Homepage: bv.Homepage,
|
||||
Maintainer: bv.Maintainer,
|
||||
Architectures: bv.Architectures,
|
||||
Licenses: bv.Licenses,
|
||||
Provides: bv.Provides,
|
||||
Conflicts: bv.Conflicts,
|
||||
Depends: bv.Depends,
|
||||
BuildDepends: bv.BuildDepends,
|
||||
OptDepends: bv.OptDepends,
|
||||
Replaces: bv.Replaces,
|
||||
Sources: bv.Sources,
|
||||
Checksums: bv.Checksums,
|
||||
Backup: bv.Backup,
|
||||
Scripts: bv.Scripts,
|
||||
AutoReq: bv.AutoReq,
|
||||
AutoProv: bv.AutoProv,
|
||||
Name: "",
|
||||
Base: "",
|
||||
BuildVarsPre: *bv,
|
||||
}
|
||||
}
|
||||
|
||||
// BuildVars represents the script variables required
|
||||
// to build a package
|
||||
type BuildVars struct {
|
||||
Name string `sh:"name,required"`
|
||||
Version string `sh:"version,required"`
|
||||
Release int `sh:"release,required"`
|
||||
Epoch uint `sh:"epoch"`
|
||||
Description string `sh:"desc"`
|
||||
Homepage string `sh:"homepage"`
|
||||
Maintainer string `sh:"maintainer"`
|
||||
Architectures []string `sh:"architectures"`
|
||||
Licenses []string `sh:"license"`
|
||||
Provides []string `sh:"provides"`
|
||||
Conflicts []string `sh:"conflicts"`
|
||||
Depends []string `sh:"deps"`
|
||||
BuildDepends []string `sh:"build_deps"`
|
||||
OptDepends []string `sh:"opt_deps"`
|
||||
Replaces []string `sh:"replaces"`
|
||||
Sources []string `sh:"sources"`
|
||||
Checksums []string `sh:"checksums"`
|
||||
Backup []string `sh:"backup"`
|
||||
Scripts Scripts `sh:"scripts"`
|
||||
AutoReq []string `sh:"auto_req"`
|
||||
AutoProv []string `sh:"auto_prov"`
|
||||
Base string
|
||||
Name string `sh:"name,required"`
|
||||
Base string
|
||||
BuildVarsPre
|
||||
}
|
||||
|
||||
type Scripts struct {
|
||||
|
Reference in New Issue
Block a user