Add logging and partial remove

This commit is contained in:
2026-02-19 17:09:44 +00:00
parent 6f2be07272
commit 3b404abd74

29
main.go
View File

@@ -337,7 +337,12 @@ func unlinkCmd(args []string) error {
}
func removeCmd(args []string) error {
flags, pkgName, err := parsePackageFlags(args)
flags, pkgSpec, err := parsePackageFlags(args)
if err != nil {
return err
}
pkgName, relPath, err := splitPackageSpec(pkgSpec)
if err != nil {
return err
}
@@ -364,15 +369,33 @@ func removeCmd(args []string) error {
return err
}
if relPath == "" {
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
}
if err := restorePath(filesDir, targetRoot, relPath, flags.dryRun); err != nil {
return err
}
if flags.dryRun {
return nil
}
return os.RemoveAll(pkgDir)
if err := os.RemoveAll(filepath.Join(filesDir, relPath)); err != nil {
return err
}
fmt.Printf("removed %s:%s\n", pkgName, relPath)
return nil
}
func applyPackage(filesDir, targetRoot string) error {
@@ -713,6 +736,7 @@ func removeLinks(paths []string, dryRun bool) error {
if err := os.Remove(path); err != nil {
return err
}
fmt.Printf("removed %s\n", path)
}
return nil
}
@@ -818,6 +842,7 @@ func restoreOne(sourcePath, targetPath, filesAbs string, dryRun bool) error {
return err
}
fmt.Printf("restored %s\n", targetPath)
return copyFile(sourcePath, targetPath)
}