ソースを参照

Merge pull request #568 from Morganamilo/diffs-as-diffs

Show tar diffs as diffs instead of editing
Anna 6 年 前
コミット
dd891aba8c
1 ファイル変更16 行追加21 行削除
  1. 16 21
      install.go

+ 16 - 21
install.go

@@ -189,12 +189,6 @@ func install(parser *arguments) error {
 		return err
 	}
 
-	//initial srcinfo parse before pkgver() bump
-	err = parseSRCINFOFiles(do.Aur, srcinfosStale, do.Bases)
-	if err != nil {
-		return err
-	}
-
 	var toDiff []*rpc.Pkg
 	var toEdit []*rpc.Pkg
 
@@ -206,7 +200,7 @@ func install(parser *arguments) error {
 		}
 
 		if len(toDiff) > 0 {
-			err = showPkgBuildDiffs(toDiff, srcinfosStale, do.Bases, cloned)
+			err = showPkgBuildDiffs(toDiff, do.Bases, cloned)
 			if err != nil {
 				return err
 			}
@@ -228,6 +222,12 @@ func install(parser *arguments) error {
 		return err
 	}
 
+	//initial srcinfo parse before pkgver() bump
+	err = parseSRCINFOFiles(do.Aur, srcinfosStale, do.Bases)
+	if err != nil {
+		return err
+	}
+
 	if config.EditMenu {
 		pkgbuildNumberMenu(do.Aur, do.Bases, remoteNamesCache)
 		toEdit, err = editNumberMenu(do.Aur, do.Bases, remoteNamesCache)
@@ -650,7 +650,7 @@ func cleanBuilds(pkgs []*rpc.Pkg) {
 	}
 }
 
-func showPkgBuildDiffs(pkgs []*rpc.Pkg, srcinfos map[string]*gosrc.Srcinfo, bases map[string][]*rpc.Pkg, cloned stringSet) error {
+func showPkgBuildDiffs(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, cloned stringSet) error {
 	for _, pkg := range pkgs {
 		dir := filepath.Join(config.BuildDir, pkg.PackageBase)
 		if shouldUseGit(dir) {
@@ -681,20 +681,15 @@ func showPkgBuildDiffs(pkgs []*rpc.Pkg, srcinfos map[string]*gosrc.Srcinfo, base
 				return err
 			}
 		} else {
-			editor, editorArgs := editor()
-			editorArgs = append(editorArgs, filepath.Join(dir, "PKGBUILD"))
-			for _, splitPkg := range srcinfos[pkg.PackageBase].SplitPackages() {
-				if splitPkg.Install != "" {
-					editorArgs = append(editorArgs, filepath.Join(dir, splitPkg.Install))
-				}
-			}
-
-			editcmd := exec.Command(editor, editorArgs...)
-			editcmd.Stdin, editcmd.Stdout, editcmd.Stderr = os.Stdin, os.Stdout, os.Stderr
-			err := editcmd.Run()
-			if err != nil {
-				return fmt.Errorf("Editor did not exit successfully, Aborting: %s", err)
+			args := []string{"diff"}
+			if useColor {
+				args = append(args, "--color=always")
+			} else {
+				args = append(args, "--color=never")
 			}
+			args = append(args, "--no-index", "/var/empty", dir)
+			// git always returns 1. why? I have no idea
+			show(passToGit(dir, args...))
 		}
 	}