diff --git a/bpm_utils/package_utils.go b/bpm_utils/package_utils.go index aaddac6..ea18f1f 100644 --- a/bpm_utils/package_utils.go +++ b/bpm_utils/package_utils.go @@ -192,6 +192,13 @@ func InstallPackage(filename, installDir string, force bool) error { if err != nil { return err } + case tar.TypeSymlink: + fmt.Println("old name: " + header.Linkname) + fmt.Println("new name: " + header.Name) + err := os.Symlink(header.Linkname, extractFilename) + if err != nil { + return err + } default: return errors.New("ExtractTarGz: uknown type: " + strconv.Itoa(int(header.Typeflag)) + " in " + extractFilename) } @@ -376,7 +383,7 @@ func RemovePackage(pkg, rootDir string) error { files := GetPackageFiles(pkg, rootDir) for _, file := range files { file = path.Join(rootDir, file) - stat, err := os.Stat(file) + stat, err := os.Lstat(file) if os.IsNotExist(err) { continue } diff --git a/main.go b/main.go index c803071..b6f3528 100644 --- a/main.go +++ b/main.go @@ -17,7 +17,7 @@ import ( /* A simple-to-use package manager */ /* ---------------------------------- */ -var bpmVer = "0.0.6" +var bpmVer = "0.0.7" var rootDir = "/" func main() { @@ -215,6 +215,7 @@ func resolveCommand() { } } err := bpm_utils.RemovePackage(pkg, rootDir) + if err != nil { log.Fatalf("Could not remove package\nError: %s\n", err) } diff --git a/test_packages/x86_64/bpm/bpm.bpm b/test_packages/x86_64/bpm/bpm.bpm index 3fd268c..fe44639 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 3788af7..9757cc2 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 f10a884..3a73b8c 100644 --- a/test_packages/x86_64/bpm/pkg.info +++ b/test_packages/x86_64/bpm/pkg.info @@ -1,5 +1,5 @@ name: bpm description: The Bubble Package Manager -version: 0.0.6 +version: 0.0.7 architecture: x86_64 type: binary