Browse Source

Remove package from VCS on failed install (#1802)

davejab 2 years ago
parent
commit
0d1e339fda
1 changed files with 9 additions and 1 deletions
  1. 9 1
      install.go

+ 9 - 1
install.go

@@ -626,7 +626,7 @@ func buildInstallPkgbuilds(
 	remoteNamesCache := stringset.FromSlice(remoteNames)
 	localNamesCache := stringset.FromSlice(localNames)
 
-	for _, base := range do.Aur {
+	for i, base := range do.Aur {
 		pkg := base.Pkgbase()
 		dir := filepath.Join(config.BuildDir, pkg)
 		built := true
@@ -652,6 +652,10 @@ func buildInstallPkgbuilds(
 			exp = make([]string, 0)
 
 			if err != nil {
+				if i != 0 {
+					go config.Runtime.VCSStore.RemovePackage([]string{do.Aur[i-1].String()})
+				}
+
 				return err
 			}
 		}
@@ -782,6 +786,10 @@ func buildInstallPkgbuilds(
 	}
 
 	err = doInstall(ctx, arguments, cmdArgs, deps, exp)
+	if err != nil {
+		go config.Runtime.VCSStore.RemovePackage([]string{do.Aur[len(do.Aur)-1].String()})
+	}
+
 	settings.NoConfirm = oldConfirm
 
 	return err