diff --git a/bpm_utils/package_utils.go b/bpm_utils/package_utils.go index f59f965..0529a74 100644 --- a/bpm_utils/package_utils.go +++ b/bpm_utils/package_utils.go @@ -591,11 +591,33 @@ func InstallPackage(filename, installDir string, force, binaryPkgFromSrc, keepTe if len(filesDiff) != 0 { fmt.Println("Removing obsolete files") for _, f := range filesDiff { - err := os.RemoveAll(path.Join(installDir, f)) + f = path.Join(installDir, f) + stat, err := os.Lstat(f) + if os.IsNotExist(err) { + continue + } if err != nil { return err } - fmt.Println("Removing: " + path.Join(installDir, f)) + if stat.IsDir() { + dir, err := os.ReadDir(f) + if err != nil { + return err + } + if len(dir) == 0 { + fmt.Println("Removing: " + f) + err := os.Remove(f) + if err != nil { + return err + } + } + } else { + fmt.Println("Removing: " + f) + err := os.Remove(f) + if err != nil { + return err + } + } } } return nil diff --git a/main.go b/main.go index 7a0ad37..2c923c8 100644 --- a/main.go +++ b/main.go @@ -17,7 +17,7 @@ import ( /* A simple-to-use package manager */ /* ---------------------------------- */ -var bpmVer = "0.1.4" +var bpmVer = "0.1.5" var subcommand = "help" var subcommandArgs []string diff --git a/test_packages/x86_64/bpm/bpm.bpm b/test_packages/x86_64/bpm/bpm.bpm index 14d6e1a..7fddced 100644 Binary files a/test_packages/x86_64/bpm/bpm.bpm and b/test_packages/x86_64/bpm/bpm.bpm differ diff --git a/test_packages/x86_64/bpm/files/usr/bin/bpm b/test_packages/x86_64/bpm/files/usr/bin/bpm index 146b57a..9ef2601 100755 Binary files a/test_packages/x86_64/bpm/files/usr/bin/bpm and b/test_packages/x86_64/bpm/files/usr/bin/bpm differ diff --git a/test_packages/x86_64/bpm/pkg.info b/test_packages/x86_64/bpm/pkg.info index b8026f2..40f44a3 100644 --- a/test_packages/x86_64/bpm/pkg.info +++ b/test_packages/x86_64/bpm/pkg.info @@ -1,6 +1,6 @@ name: bpm description: The Bubble Package Manager -version: 0.1.4 +version: 0.1.5 url: https://gitlab.com/bubble-package-manager/bpm/ license: GPL3 architecture: x86_64