forked from Plemya-x/ALR
Compare commits
No commits in common. "bd79d56776819e2f702a1ff1dd41392c6660822d" and "4b53e819d8bec442b215b16e2c5e061efec0d425" have entirely different histories.
bd79d56776
...
4b53e819d8
@ -100,11 +100,11 @@ func e2eSpawn(runnable e2e.Runnable, command e2e.Command, timeout time.Duration,
|
|||||||
|
|
||||||
var ALL_SYSTEMS []string = []string{
|
var ALL_SYSTEMS []string = []string{
|
||||||
"ubuntu-24.04",
|
"ubuntu-24.04",
|
||||||
// "alt-sisyphus",
|
"alt-sisyphus",
|
||||||
// "archlinux",
|
"archlinux",
|
||||||
// "alpine",
|
//"alpine",
|
||||||
// "opensuse-leap",
|
"opensuse-leap",
|
||||||
// "redos-8",
|
"redos-8",
|
||||||
}
|
}
|
||||||
|
|
||||||
var COMMON_SYSTEMS []string = []string{
|
var COMMON_SYSTEMS []string = []string{
|
||||||
@ -155,7 +155,6 @@ func dockerMultipleRun(t *testing.T, name string, ids []string, f func(t *testin
|
|||||||
Volumes: []string{
|
Volumes: []string{
|
||||||
"./alr:/usr/bin/alr",
|
"./alr:/usr/bin/alr",
|
||||||
},
|
},
|
||||||
Privileged: true,
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
assert.NoError(t, e2e.StartAndWaitReady(runnable))
|
assert.NoError(t, e2e.StartAndWaitReady(runnable))
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
FROM ubuntu:24.10
|
FROM ubuntu:24.10
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates sudo
|
RUN apt update && apt install -y ca-certificates
|
||||||
RUN useradd -m -s /bin/bash alr-user && \
|
RUN useradd -m -s /bin/bash alr-user
|
||||||
echo "alr-user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/alr-user && \
|
|
||||||
chmod 0440 /etc/sudoers.d/alr-user
|
|
||||||
USER alr-user
|
USER alr-user
|
||||||
ENTRYPOINT ["tail", "-f", "/dev/null"]
|
ENTRYPOINT ["tail", "-f", "/dev/null"]
|
@ -1,40 +0,0 @@
|
|||||||
// 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/>.
|
|
||||||
|
|
||||||
//go:build e2e
|
|
||||||
|
|
||||||
package e2etests_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/alecthomas/assert/v2"
|
|
||||||
"github.com/efficientgo/e2e"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestE2EIssue32Interactive(t *testing.T) {
|
|
||||||
dockerMultipleRun(
|
|
||||||
t,
|
|
||||||
"issue-32-interactive",
|
|
||||||
COMMON_SYSTEMS,
|
|
||||||
func(t *testing.T, r e2e.Runnable) {
|
|
||||||
err := r.Exec(e2e.NewCommand(
|
|
||||||
"alr", "--interactive=false", "remove", "ca-certificates",
|
|
||||||
))
|
|
||||||
assert.NoError(t, err)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
@ -1,55 +0,0 @@
|
|||||||
// 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/>.
|
|
||||||
|
|
||||||
//go:build e2e
|
|
||||||
|
|
||||||
package e2etests_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/alecthomas/assert/v2"
|
|
||||||
"github.com/efficientgo/e2e"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestE2EIssue50InstallMultiple(t *testing.T) {
|
|
||||||
dockerMultipleRun(
|
|
||||||
t,
|
|
||||||
"issue-50-install-multiple",
|
|
||||||
COMMON_SYSTEMS,
|
|
||||||
func(t *testing.T, r e2e.Runnable) {
|
|
||||||
err := r.Exec(e2e.NewCommand(
|
|
||||||
"alr",
|
|
||||||
"addrepo",
|
|
||||||
"--name",
|
|
||||||
"alr-repo",
|
|
||||||
"--url",
|
|
||||||
"https://gitea.plemya-x.ru/Maks1mS/repo-for-tests.git",
|
|
||||||
))
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
err = r.Exec(e2e.NewCommand(
|
|
||||||
"alr", "in", "foo-pkg", "bar-pkg",
|
|
||||||
))
|
|
||||||
assert.NoError(t, err)
|
|
||||||
|
|
||||||
err = r.Exec(e2e.NewCommand("cat", "/opt/foo"))
|
|
||||||
assert.NoError(t, err)
|
|
||||||
err = r.Exec(e2e.NewCommand("cat", "/opt/bar"))
|
|
||||||
assert.NoError(t, err)
|
|
||||||
},
|
|
||||||
)
|
|
||||||
}
|
|
@ -169,10 +169,7 @@ func RemoveCmd() *cli.Command {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
err := mgr.Remove(&manager.Opts{
|
err := mgr.Remove(nil, c.Args().Slice()...)
|
||||||
AsRoot: true,
|
|
||||||
NoConfirm: !c.Bool("interactive"),
|
|
||||||
}, c.Args().Slice()...)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error(gotext.Get("Error removing packages"), "err", err)
|
slog.Error(gotext.Get("Error removing packages"), "err", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
@ -170,7 +170,7 @@ msgstr ""
|
|||||||
msgid "Command remove expected at least 1 argument, got %d"
|
msgid "Command remove expected at least 1 argument, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: install.go:177
|
#: install.go:174
|
||||||
msgid "Error removing packages"
|
msgid "Error removing packages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -375,39 +375,39 @@ msgstr ""
|
|||||||
msgid "Installing build dependencies"
|
msgid "Installing build dependencies"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:521
|
#: pkg/build/build.go:517
|
||||||
msgid "Installing dependencies"
|
msgid "Installing dependencies"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:602
|
#: pkg/build/build.go:598
|
||||||
msgid "Would you like to remove the build dependencies?"
|
msgid "Would you like to remove the build dependencies?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:665
|
#: pkg/build/build.go:661
|
||||||
msgid "Executing prepare()"
|
msgid "Executing prepare()"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:675
|
#: pkg/build/build.go:671
|
||||||
msgid "Executing build()"
|
msgid "Executing build()"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:705 pkg/build/build.go:725
|
#: pkg/build/build.go:701 pkg/build/build.go:721
|
||||||
msgid "Executing %s()"
|
msgid "Executing %s()"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:784
|
#: pkg/build/build.go:780
|
||||||
msgid "Error installing native packages"
|
msgid "Error installing native packages"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:808
|
#: pkg/build/build.go:804
|
||||||
msgid "Error installing package"
|
msgid "Error installing package"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:867
|
#: pkg/build/build.go:863
|
||||||
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: pkg/build/build.go:878
|
#: pkg/build/build.go:874
|
||||||
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ msgstr "Удалить установленный пакет"
|
|||||||
msgid "Command remove expected at least 1 argument, got %d"
|
msgid "Command remove expected at least 1 argument, got %d"
|
||||||
msgstr "Для команды remove ожидался хотя бы 1 аргумент, получено %d"
|
msgstr "Для команды remove ожидался хотя бы 1 аргумент, получено %d"
|
||||||
|
|
||||||
#: install.go:177
|
#: install.go:174
|
||||||
msgid "Error removing packages"
|
msgid "Error removing packages"
|
||||||
msgstr "Ошибка при удалении пакетов"
|
msgstr "Ошибка при удалении пакетов"
|
||||||
|
|
||||||
@ -389,40 +389,40 @@ msgstr "Этот пакет уже установлен"
|
|||||||
msgid "Installing build dependencies"
|
msgid "Installing build dependencies"
|
||||||
msgstr "Установка зависимостей сборки"
|
msgstr "Установка зависимостей сборки"
|
||||||
|
|
||||||
#: pkg/build/build.go:521
|
#: pkg/build/build.go:517
|
||||||
msgid "Installing dependencies"
|
msgid "Installing dependencies"
|
||||||
msgstr "Установка зависимостей"
|
msgstr "Установка зависимостей"
|
||||||
|
|
||||||
#: pkg/build/build.go:602
|
#: pkg/build/build.go:598
|
||||||
msgid "Would you like to remove the build dependencies?"
|
msgid "Would you like to remove the build dependencies?"
|
||||||
msgstr "Хотели бы вы удалить зависимости сборки?"
|
msgstr "Хотели бы вы удалить зависимости сборки?"
|
||||||
|
|
||||||
#: pkg/build/build.go:665
|
#: pkg/build/build.go:661
|
||||||
msgid "Executing prepare()"
|
msgid "Executing prepare()"
|
||||||
msgstr "Исполнение prepare()"
|
msgstr "Исполнение prepare()"
|
||||||
|
|
||||||
#: pkg/build/build.go:675
|
#: pkg/build/build.go:671
|
||||||
msgid "Executing build()"
|
msgid "Executing build()"
|
||||||
msgstr "Исполнение build()"
|
msgstr "Исполнение build()"
|
||||||
|
|
||||||
#: pkg/build/build.go:705 pkg/build/build.go:725
|
#: pkg/build/build.go:701 pkg/build/build.go:721
|
||||||
msgid "Executing %s()"
|
msgid "Executing %s()"
|
||||||
msgstr "Исполнение %s()"
|
msgstr "Исполнение %s()"
|
||||||
|
|
||||||
#: pkg/build/build.go:784
|
#: pkg/build/build.go:780
|
||||||
msgid "Error installing native packages"
|
msgid "Error installing native packages"
|
||||||
msgstr "Ошибка при установке нативных пакетов"
|
msgstr "Ошибка при установке нативных пакетов"
|
||||||
|
|
||||||
#: pkg/build/build.go:808
|
#: pkg/build/build.go:804
|
||||||
msgid "Error installing package"
|
msgid "Error installing package"
|
||||||
msgstr "Ошибка при установке пакета"
|
msgstr "Ошибка при установке пакета"
|
||||||
|
|
||||||
#: pkg/build/build.go:867
|
#: pkg/build/build.go:863
|
||||||
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
msgid "AutoProv is not implemented for this package format, so it's skipped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"AutoProv не реализовано для этого формата пакета, поэтому будет пропущено"
|
"AutoProv не реализовано для этого формата пакета, поэтому будет пропущено"
|
||||||
|
|
||||||
#: pkg/build/build.go:878
|
#: pkg/build/build.go:874
|
||||||
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
msgid "AutoReq is not implemented for this package format, so it's skipped"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"AutoReq не реализовано для этого формата пакета, поэтому будет пропущено"
|
"AutoReq не реализовано для этого формата пакета, поэтому будет пропущено"
|
||||||
|
@ -489,17 +489,13 @@ func (b *Builder) getBuildersForPackages(pkgs []db.Package) []*Builder {
|
|||||||
}
|
}
|
||||||
pkgsMap := make(map[string]*item)
|
pkgsMap := make(map[string]*item)
|
||||||
for _, pkg := range pkgs {
|
for _, pkg := range pkgs {
|
||||||
name := pkg.BasePkgName
|
if pkgsMap[pkg.BasePkgName] == nil {
|
||||||
if name == "" {
|
pkgsMap[pkg.BasePkgName] = &item{
|
||||||
name = pkg.Name
|
|
||||||
}
|
|
||||||
if pkgsMap[name] == nil {
|
|
||||||
pkgsMap[name] = &item{
|
|
||||||
pkg: &pkg,
|
pkg: &pkg,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pkgsMap[name].packages = append(
|
pkgsMap[pkg.BasePkgName].packages = append(
|
||||||
pkgsMap[name].packages,
|
pkgsMap[pkg.BasePkgName].packages,
|
||||||
pkg.Name,
|
pkg.Name,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user