Browse Source

Merge pull request #559 from Morganamilo/install

Show .install files with pkgbuilds when editing
Anna 6 years ago
parent
commit
c10716ab1a
1 changed files with 22 additions and 10 deletions
  1. 22 10
      install.go

+ 22 - 10
install.go

@@ -259,6 +259,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
+	}
+
 	var toDiff []*rpc.Pkg
 	var toEdit []*rpc.Pkg
 
@@ -270,7 +276,7 @@ func install(parser *arguments) error {
 		}
 
 		if len(toDiff) > 0 {
-			err = showPkgBuildDiffs(toDiff, do.Bases, cloned)
+			err = showPkgBuildDiffs(toDiff, srcinfosStale, do.Bases, cloned)
 			if err != nil {
 				return err
 			}
@@ -300,7 +306,7 @@ func install(parser *arguments) error {
 		}
 
 		if len(toEdit) > 0 {
-			err = editPkgBuilds(toEdit, do.Bases)
+			err = editPkgBuilds(toEdit, srcinfosStale, do.Bases)
 			if err != nil {
 				return err
 			}
@@ -317,12 +323,6 @@ func install(parser *arguments) error {
 		config.NoConfirm = oldValue
 	}
 
-	//initial srcinfo parse before pkgver() bump
-	err = parseSRCINFOFiles(do.Aur, srcinfosStale, do.Bases)
-	if err != nil {
-		return err
-	}
-
 	incompatible, err = getIncompatible(do.Aur, srcinfosStale, do.Bases)
 	if err != nil {
 		return err
@@ -651,7 +651,7 @@ func cleanBuilds(pkgs []*rpc.Pkg) {
 	}
 }
 
-func showPkgBuildDiffs(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, cloned stringSet) error {
+func showPkgBuildDiffs(pkgs []*rpc.Pkg, srcinfos map[string]*gosrc.Srcinfo, bases map[string][]*rpc.Pkg, cloned stringSet) error {
 	for _, pkg := range pkgs {
 		dir := filepath.Join(config.BuildDir, pkg.PackageBase)
 		if shouldUseGit(dir) {
@@ -684,6 +684,12 @@ func showPkgBuildDiffs(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, cloned stri
 		} 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()
@@ -696,11 +702,17 @@ func showPkgBuildDiffs(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg, cloned stri
 	return nil
 }
 
-func editPkgBuilds(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg) error {
+func editPkgBuilds(pkgs []*rpc.Pkg, srcinfos map[string]*gosrc.Srcinfo, bases map[string][]*rpc.Pkg) error {
 	pkgbuilds := make([]string, 0, len(pkgs))
 	for _, pkg := range pkgs {
 		dir := filepath.Join(config.BuildDir, pkg.PackageBase)
 		pkgbuilds = append(pkgbuilds, filepath.Join(dir, "PKGBUILD"))
+
+		for _, splitPkg := range srcinfos[pkg.PackageBase].SplitPackages() {
+			if splitPkg.Install != "" {
+				pkgbuilds = append(pkgbuilds, filepath.Join(dir, splitPkg.Install))
+			}
+		}
 	}
 
 	if len(pkgbuilds) > 0 {