aboutsummaryrefslogtreecommitdiffsponsor
diff options
context:
space:
mode:
authorSlack Coder <slackcoder@server.ky>2022-05-05 08:48:38 -0500
committerSlack Coder <slackcoder@server.ky>2022-05-05 08:48:38 -0500
commit3026d40715e2758bc9ddfbd98acb558cfcba3c5d (patch)
tree110948975c44a3d62e195ed9b4fdad09e94a53d8
parent54b4b1d11ac5e893715d2ed509ee251dfc46a598 (diff)
downloadpkgtools-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.go36
-rw-r--r--installpkg.go1
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")
}