forked from Plemya-x/ALR
wip
This commit is contained in:
parent
100739c419
commit
083df3c7aa
28
build.go
28
build.go
@ -23,6 +23,7 @@ import (
|
||||
"log/slog"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/leonelquinteros/gotext"
|
||||
"github.com/urfave/cli/v2"
|
||||
@ -48,6 +49,11 @@ func BuildCmd() *cli.Command {
|
||||
Value: "alr.sh",
|
||||
Usage: gotext.Get("Path to the build script"),
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "script-package",
|
||||
Aliases: []string{"sp"},
|
||||
Usage: gotext.Get("Specify package in script (for multi package script only)"),
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "package",
|
||||
Aliases: []string{"p"},
|
||||
@ -79,18 +85,32 @@ func BuildCmd() *cli.Command {
|
||||
switch {
|
||||
case c.IsSet("script"):
|
||||
script = c.String("script")
|
||||
packageName = c.String("script-package")
|
||||
case c.IsSet("package"):
|
||||
// TODO: refactor
|
||||
// TODO: handle multiple packages
|
||||
packageInput := c.String("package")
|
||||
pkgs, _, _ := rs.FindPkgs(ctx, []string{packageInput})
|
||||
pkg := pkgs[packageInput]
|
||||
|
||||
arr := strings.Split(packageInput, "/")
|
||||
var packageSearch string
|
||||
if len(arr) == 2 {
|
||||
packageSearch = arr[1]
|
||||
} else {
|
||||
packageSearch = arr[0]
|
||||
}
|
||||
|
||||
pkgs, _, _ := rs.FindPkgs(ctx, []string{packageSearch})
|
||||
pkg, ok := pkgs[packageSearch]
|
||||
if len(pkg) < 1 || !ok {
|
||||
slog.Error(gotext.Get("Package not found"))
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if pkg[0].BasePkgName != "" {
|
||||
script = filepath.Join(repoDir, pkg[0].Repository, pkg[0].BasePkgName, "alr.sh")
|
||||
packageName = pkg[0].Name
|
||||
} else {
|
||||
script = filepath.Join(repoDir, pkg[0].Repository, pkg[0].Name, "alr.sh")
|
||||
}
|
||||
|
||||
default:
|
||||
script = filepath.Join(repoDir, "alr.sh")
|
||||
}
|
||||
|
@ -29,9 +29,9 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"gitea.plemya-x.ru/Plemya-x/fakeroot"
|
||||
"mvdan.cc/sh/v3/expand"
|
||||
"mvdan.cc/sh/v3/interp"
|
||||
"gitea.plemya-x.ru/Plemya-x/fakeroot"
|
||||
)
|
||||
|
||||
// FakerootExecHandler was extracted from github.com/mvdan/sh/interp/handler.go
|
||||
|
@ -9,48 +9,56 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: build.go:43
|
||||
#: build.go:44
|
||||
msgid "Build a local package"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:49
|
||||
#: build.go:50
|
||||
msgid "Path to the build script"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:54
|
||||
#: build.go:55
|
||||
msgid "Specify package in script (for multi package script only)"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:60
|
||||
msgid "Name of the package to build and its repo (example: default/go-bin)"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:59
|
||||
#: build.go:65
|
||||
msgid ""
|
||||
"Build package from scratch even if there's an already built package available"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:69
|
||||
#: build.go:75
|
||||
msgid "Error db init"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:102
|
||||
#: build.go:104
|
||||
msgid "Package not found"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:122
|
||||
msgid "Error pulling repositories"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:110
|
||||
#: build.go:130
|
||||
msgid "Unable to detect a supported package manager on the system"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:116
|
||||
#: build.go:136
|
||||
msgid "Error parsing os release"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:137
|
||||
#: build.go:157
|
||||
msgid "Error building package"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:144
|
||||
#: build.go:164
|
||||
msgid "Error getting working directory"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:153
|
||||
#: build.go:173
|
||||
msgid "Error moving the package"
|
||||
msgstr ""
|
||||
|
||||
@ -321,57 +329,57 @@ msgstr ""
|
||||
msgid "Compressing package"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:341
|
||||
#: pkg/build/build.go:359
|
||||
msgid ""
|
||||
"Your system's CPU architecture doesn't match this package. Do you want to "
|
||||
"build anyway?"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:355
|
||||
#: pkg/build/build.go:373
|
||||
msgid "This package is already installed"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:379
|
||||
#: pkg/build/build.go:397
|
||||
msgid "Installing build dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:390
|
||||
#: pkg/build/build.go:408
|
||||
msgid "Installing dependencies"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:431
|
||||
#: pkg/build/build.go:449
|
||||
msgid "The checksums array must be the same length as sources"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:482
|
||||
#: pkg/build/build.go:500
|
||||
msgid "Would you like to remove the build dependencies?"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:519
|
||||
#: pkg/build/build.go:537
|
||||
msgid "Executing version()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:539
|
||||
#: pkg/build/build.go:557
|
||||
msgid "Updating version"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:544
|
||||
#: pkg/build/build.go:562
|
||||
msgid "Executing prepare()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:554
|
||||
#: pkg/build/build.go:572
|
||||
msgid "Executing build()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:570 pkg/build/build.go:598
|
||||
#: pkg/build/build.go:588 pkg/build/build.go:616
|
||||
msgid "Executing %s()"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:657
|
||||
#: pkg/build/build.go:675
|
||||
msgid "Error installing native packages"
|
||||
msgstr ""
|
||||
|
||||
#: pkg/build/build.go:683
|
||||
#: pkg/build/build.go:701
|
||||
msgid "Error installing package"
|
||||
msgstr ""
|
||||
|
||||
|
@ -16,49 +16,57 @@ msgstr ""
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Gtranslator 47.1\n"
|
||||
|
||||
#: build.go:43
|
||||
#: build.go:44
|
||||
msgid "Build a local package"
|
||||
msgstr "Сборка локального пакета"
|
||||
|
||||
#: build.go:49
|
||||
#: build.go:50
|
||||
msgid "Path to the build script"
|
||||
msgstr "Путь к скрипту сборки"
|
||||
|
||||
#: build.go:54
|
||||
#: build.go:55
|
||||
msgid "Specify package in script (for multi package script only)"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:60
|
||||
msgid "Name of the package to build and its repo (example: default/go-bin)"
|
||||
msgstr "Имя пакета для сборки и его репозиторий (пример: default/go-bin)"
|
||||
|
||||
#: build.go:59
|
||||
#: build.go:65
|
||||
msgid ""
|
||||
"Build package from scratch even if there's an already built package available"
|
||||
msgstr "Создайте пакет с нуля, даже если уже имеется готовый пакет"
|
||||
|
||||
#: build.go:69
|
||||
#: build.go:75
|
||||
msgid "Error db init"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:102
|
||||
#: build.go:104
|
||||
msgid "Package not found"
|
||||
msgstr ""
|
||||
|
||||
#: build.go:122
|
||||
msgid "Error pulling repositories"
|
||||
msgstr "Ошибка при извлечении репозиториев"
|
||||
|
||||
#: build.go:110
|
||||
#: build.go:130
|
||||
msgid "Unable to detect a supported package manager on the system"
|
||||
msgstr "Не удалось обнаружить поддерживаемый менеджер пакетов в системе"
|
||||
|
||||
#: build.go:116
|
||||
#: build.go:136
|
||||
#, fuzzy
|
||||
msgid "Error parsing os release"
|
||||
msgstr "Ошибка при разборе файла выпуска операционной системы"
|
||||
|
||||
#: build.go:137
|
||||
#: build.go:157
|
||||
msgid "Error building package"
|
||||
msgstr "Ошибка при сборке пакета"
|
||||
|
||||
#: build.go:144
|
||||
#: build.go:164
|
||||
msgid "Error getting working directory"
|
||||
msgstr "Ошибка при получении рабочего каталога"
|
||||
|
||||
#: build.go:153
|
||||
#: build.go:173
|
||||
msgid "Error moving the package"
|
||||
msgstr "Ошибка при перемещении пакета"
|
||||
|
||||
@ -336,7 +344,7 @@ msgstr "Сборка метаданных пакета"
|
||||
msgid "Compressing package"
|
||||
msgstr "Сжатие пакета"
|
||||
|
||||
#: pkg/build/build.go:341
|
||||
#: pkg/build/build.go:359
|
||||
msgid ""
|
||||
"Your system's CPU architecture doesn't match this package. Do you want to "
|
||||
"build anyway?"
|
||||
@ -344,52 +352,52 @@ msgstr ""
|
||||
"Архитектура процессора вашей системы не соответствует этому пакету. Вы все "
|
||||
"равно хотите выполнить сборку?"
|
||||
|
||||
#: pkg/build/build.go:355
|
||||
#: pkg/build/build.go:373
|
||||
msgid "This package is already installed"
|
||||
msgstr "Этот пакет уже установлен"
|
||||
|
||||
#: pkg/build/build.go:379
|
||||
#: pkg/build/build.go:397
|
||||
msgid "Installing build dependencies"
|
||||
msgstr "Установка зависимостей сборки"
|
||||
|
||||
#: pkg/build/build.go:390
|
||||
#: pkg/build/build.go:408
|
||||
msgid "Installing dependencies"
|
||||
msgstr "Установка зависимостей"
|
||||
|
||||
#: pkg/build/build.go:431
|
||||
#: pkg/build/build.go:449
|
||||
msgid "The checksums array must be the same length as sources"
|
||||
msgstr "Массив контрольных сумм должен быть той же длины, что и источники"
|
||||
|
||||
#: pkg/build/build.go:482
|
||||
#: pkg/build/build.go:500
|
||||
msgid "Would you like to remove the build dependencies?"
|
||||
msgstr "Хотели бы вы удалить зависимости сборки?"
|
||||
|
||||
#: pkg/build/build.go:519
|
||||
#: pkg/build/build.go:537
|
||||
msgid "Executing version()"
|
||||
msgstr "Исполнение версия()"
|
||||
|
||||
#: pkg/build/build.go:539
|
||||
#: pkg/build/build.go:557
|
||||
msgid "Updating version"
|
||||
msgstr "Обновление версии"
|
||||
|
||||
#: pkg/build/build.go:544
|
||||
#: pkg/build/build.go:562
|
||||
msgid "Executing prepare()"
|
||||
msgstr "Исполнение prepare()"
|
||||
|
||||
#: pkg/build/build.go:554
|
||||
#: pkg/build/build.go:572
|
||||
msgid "Executing build()"
|
||||
msgstr "Исполнение build()"
|
||||
|
||||
#: pkg/build/build.go:570 pkg/build/build.go:598
|
||||
#: pkg/build/build.go:588 pkg/build/build.go:616
|
||||
#, fuzzy
|
||||
msgid "Executing %s()"
|
||||
msgstr "Исполнение files()"
|
||||
|
||||
#: pkg/build/build.go:657
|
||||
#: pkg/build/build.go:675
|
||||
msgid "Error installing native packages"
|
||||
msgstr "Ошибка при установке нативных пакетов"
|
||||
|
||||
#: pkg/build/build.go:683
|
||||
#: pkg/build/build.go:701
|
||||
msgid "Error installing package"
|
||||
msgstr "Ошибка при установке пакета"
|
||||
|
||||
|
@ -266,14 +266,32 @@ func (b *Builder) executeFirstPass(
|
||||
}
|
||||
|
||||
dec := decoder.New(b.info, runner) // Создаём новый декодер
|
||||
|
||||
type packages struct {
|
||||
BasePkgName string `sh:"basepkg_name"`
|
||||
Names []string `sh:"name"`
|
||||
}
|
||||
|
||||
var pkgs packages
|
||||
err = dec.DecodeVars(&pkgs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(pkgs.Names) == 0 {
|
||||
return nil, errors.New("package name is missing")
|
||||
}
|
||||
var vars types.BuildVars
|
||||
if b.opts.Package == "" {
|
||||
if len(pkgs.Names) == 1 {
|
||||
err = dec.DecodeVars(&vars) // Декодируем переменные
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &vars, nil
|
||||
}
|
||||
if b.opts.Package == "" {
|
||||
return nil, errors.New("script has multiple packages but package is not specified")
|
||||
}
|
||||
|
||||
var preVars types.BuildVarsPre
|
||||
funcName := fmt.Sprintf("meta_%s", b.opts.Package)
|
||||
meta, ok := dec.GetFuncSub(funcName)
|
||||
|
@ -1,3 +1,22 @@
|
||||
# This file was originally part of the project "LURE - Linux User REpository", created by Elara Musayelyan.
|
||||
# It has been modified as part of "ALR - Any Linux Repository" by Евгений Храмов.
|
||||
#
|
||||
# ALR - Any Linux Repository
|
||||
# Copyright (C) 2025 Евгений Храмов
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
info() {
|
||||
echo $'\x1b[32m[ИНФО]\x1b[0m' $@
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user