diff --git a/main.go b/main.go index 9bdfb77..8c6f48d 100644 --- a/main.go +++ b/main.go @@ -330,10 +330,30 @@ func unlinkCmd(args []string) error { } if relPath == "" { - return restorePackage(filesDir, targetRoot, flags.dryRun) + if err := restorePackage(filesDir, targetRoot, flags.dryRun); err != nil { + return err + } + if flags.dryRun { + return nil + } + if err := os.RemoveAll(pkgDir); err != nil { + return err + } + fmt.Printf("removed package %s\n", pkgName) + return nil } - return restorePath(filesDir, targetRoot, relPath, flags.dryRun) + if err := restorePath(filesDir, targetRoot, relPath, flags.dryRun); err != nil { + return err + } + if flags.dryRun { + return nil + } + if err := os.RemoveAll(filepath.Join(filesDir, relPath)); err != nil { + return err + } + fmt.Printf("removed %s:%s\n", pkgName, relPath) + return nil } func removeCmd(args []string) error {