From 3026d40715e2758bc9ddfbd98acb558cfcba3c5d Mon Sep 17 00:00:00 2001 From: Slack Coder Date: Thu, 5 May 2022 08:48:38 -0500 Subject: installpkg: fix unpacking of /install dir Add missing return statement so the package 'install' directory is not installed on the target filesystem. --- filesystem_test.go | 36 ++++++++++++++++++++++++++++++++++++ installpkg.go | 1 + 2 files changed, 37 insertions(+) create mode 100644 filesystem_test.go diff --git a/filesystem_test.go b/filesystem_test.go new file mode 100644 index 0000000..6559488 --- /dev/null +++ b/filesystem_test.go @@ -0,0 +1,36 @@ +package pkgtools + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestIsParentDir(t *testing.T) { + tests := []struct { + Parent string + FileName string + Exp bool + }{ + { + Parent: "install", + FileName: "install/doinst.sh", + Exp: true, + }, + { + Parent: "other/install", + FileName: "install/doinst.sh", + Exp: false, + }, + { + Parent: "install", + FileName: "doinst.sh", + Exp: false, + }, + } + for _, test := range tests { + exp, err := IsParentDir(test.Parent, test.FileName) + require.NoError(t, err) + require.Equal(t, test.Exp, exp) + } +} diff --git a/installpkg.go b/installpkg.go index a0749bd..479b318 100644 --- a/installpkg.go +++ b/installpkg.go @@ -312,6 +312,7 @@ func extractSlackwarePkg(flags *InstallPkgFlags, fp string) error { if ok, err := IsParentDir(PackageInstallPath, h.Name); ok { // important install files are already written // to the targets package database. + return nil } else if err != nil { return errors.Wrap(err, "installing package") } -- cgit v1.2.3