diff options
author | Slack Coder <slackcoder@server.ky> | 2022-05-05 08:48:38 -0500 |
---|---|---|
committer | Slack Coder <slackcoder@server.ky> | 2022-05-05 08:48:38 -0500 |
commit | 3026d40715e2758bc9ddfbd98acb558cfcba3c5d (patch) | |
tree | 110948975c44a3d62e195ed9b4fdad09e94a53d8 | |
parent | 54b4b1d11ac5e893715d2ed509ee251dfc46a598 (diff) | |
download | pkgtools-go-3026d40715e2758bc9ddfbd98acb558cfcba3c5d.tar.xz |
installpkg: fix unpacking of /install dir
Add missing return statement so the package 'install' directory is not
installed on the target filesystem.
-rw-r--r-- | filesystem_test.go | 36 | ||||
-rw-r--r-- | installpkg.go | 1 |
2 files changed, 37 insertions, 0 deletions
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") } |