From 1089e8a3f3639e7e49088184e1775ac57a243d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=28=D0=A5?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D1=8B=D1=87=D0=AA=29=20=D0=A5=D1=80=D0=B0?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= Date: Tue, 26 Aug 2025 22:25:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D1=81=D0=BE=D0=B1=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D0=B8=20pre-commit.yaml=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/build/utils.go | 6 ++++-- internal/gen/aur.go | 7 +------ pkg/dlcache/dlcache.go | 4 ++-- pkg/dlcache/dlcache_test.go | 6 ++++++ 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/internal/build/utils.go b/internal/build/utils.go index b5bb92f..f19dc53 100644 --- a/internal/build/utils.go +++ b/internal/build/utils.go @@ -19,6 +19,7 @@ package build import ( "fmt" "io" + "log/slog" "os" "path/filepath" "regexp" @@ -51,8 +52,9 @@ func prepareDirs(dirs types.Directories) error { // Пробуем удалить базовую директорию, если она существует err := os.RemoveAll(dirs.BaseDir) if err != nil { - // Если не можем удалить (например, принадлежит root), игнорируем - // и попробуем создать новые директории + // Если не можем удалить (например, принадлежит root), логируем и продолжаем + // Новые директории будут созданы или перезаписаны + slog.Debug("Failed to remove base directory", "path", dirs.BaseDir, "error", err) } // Создаем директории с правильным владельцем для /tmp/alr с setgid битом diff --git a/internal/gen/aur.go b/internal/gen/aur.go index 99c1236..9356128 100644 --- a/internal/gen/aur.go +++ b/internal/gen/aur.go @@ -206,11 +206,7 @@ func (r aurResult) GenerateInstallCommands() string { // install-license команды for _, license := range r.LicenseFiles { - if license == "LICENSE" || license == "./LICENSE" { - commands = append(commands, fmt.Sprintf("\tinstall-license %s %s/LICENSE", license, r.Name)) - } else { - commands = append(commands, fmt.Sprintf("\tinstall-license %s %s/LICENSE", license, r.Name)) - } + commands = append(commands, fmt.Sprintf("\tinstall-license %s %s/LICENSE", license, r.Name)) } // install-manual команды @@ -302,7 +298,6 @@ func parseSources(pkgbuild string) []string { source = strings.ReplaceAll(source, "${pkgname}", "${name}") // Обрабатываем другие переменные (упрощенно) source = strings.ReplaceAll(source, "$_commit", "${_commit}") - source = strings.ReplaceAll(source, "${_commit}", "${_commit}") sources = append(sources, source) } } diff --git a/pkg/dlcache/dlcache.go b/pkg/dlcache/dlcache.go index 5207d37..1a1cbb0 100644 --- a/pkg/dlcache/dlcache.go +++ b/pkg/dlcache/dlcache.go @@ -62,8 +62,8 @@ func (dc *DownloadCache) New(ctx context.Context, id string) (string, error) { } } - // Используем специальную функцию для создания каталогов - err = utils.EnsureTempDirWithRootOwner(itemPath, 0o755) + // Используем специальную функцию для создания каталогов с setgid битом + err = utils.EnsureTempDirWithRootOwner(itemPath, 0o2775) if err != nil { return "", err } diff --git a/pkg/dlcache/dlcache_test.go b/pkg/dlcache/dlcache_test.go index 247bad6..a7ccb8e 100644 --- a/pkg/dlcache/dlcache_test.go +++ b/pkg/dlcache/dlcache_test.go @@ -82,6 +82,12 @@ func TestNew(t *testing.T) { fi, err := os.Stat(dir) if err != nil { t.Errorf("stat: expected no error, got %s", err) + return + } + + if fi == nil { + t.Errorf("Expected file info to not be nil") + return } if !fi.IsDir() {