diff --git a/download.go b/download.go index ae8c38d6..35283380 100644 --- a/download.go +++ b/download.go @@ -135,8 +135,11 @@ func getPkgbuilds(pkgs []string) error { } pkgs = removeInvalidTargets(pkgs) - aur, repo, err := packageSlices(pkgs) + info, err := aurInfoPrint(aur) + if err != nil { + return err + } if len(repo) > 0 { missing, err = getPkgbuildsfromABS(repo, wd) @@ -146,11 +149,13 @@ func getPkgbuilds(pkgs []string) error { } if len(aur) > 0 { - _missing, err := getPkgbuildsfromAUR(aur, wd) - if err != nil { + bases := getBases(info) + toSkip := pkgbuildsToSkip(bases, nil) + if _, err = downloadPkgbuilds(bases, toSkip, wd); err != nil { return err } - missing = missing || _missing + + missing = missing || len(aur) != len(info) } if missing { @@ -225,43 +230,3 @@ nextPkg: return } - -// GetPkgbuild downloads pkgbuild from the AUR. -func getPkgbuildsfromAUR(pkgs []string, dir string) (bool, error) { - missing := false - strippedPkgs := make([]string, 0) - for _, pkg := range pkgs { - _, name := splitDbFromName(pkg) - strippedPkgs = append(strippedPkgs, name) - } - - aq, err := aurInfoPrint(strippedPkgs) - if err != nil { - return missing, err - } - - for _, pkg := range aq { - if _, err := os.Stat(filepath.Join(dir, pkg.PackageBase)); err == nil { - fmt.Println(bold(red(arrow)), bold(cyan(pkg.Name)), "directory already exists") - continue - } - - if shouldUseGit(filepath.Join(dir, pkg.PackageBase)) { - _, err = gitDownload(baseURL+"/"+pkg.PackageBase+".git", dir, pkg.PackageBase) - } else { - err = downloadAndUnpack(baseURL+aq[0].URLPath, dir) - } - - if err != nil { - fmt.Println(err) - } else { - fmt.Println(bold(yellow(arrow)), "Downloaded", cyan(pkg.PackageBase), "from AUR") - } - } - - if len(aq) != len(pkgs) { - missing = true - } - - return missing, err -} diff --git a/install.go b/install.go index 3275e379..42063d06 100644 --- a/install.go +++ b/install.go @@ -185,7 +185,7 @@ func install(parser *arguments) error { } toSkip := pkgbuildsToSkip(do.Aur, targets) - cloned, err := downloadPkgbuilds(do.Aur, toSkip) + cloned, err := downloadPkgbuilds(do.Aur, toSkip, config.BuildDir) if err != nil { return err } @@ -809,7 +809,7 @@ func mergePkgbuilds(bases []Base) error { return nil } -func downloadPkgbuilds(bases []Base, toSkip stringSet) (stringSet, error) { +func downloadPkgbuilds(bases []Base, toSkip stringSet, buildDir string) (stringSet, error) { cloned := make(stringSet) downloaded := 0 var wg sync.WaitGroup @@ -830,7 +830,7 @@ func downloadPkgbuilds(bases []Base, toSkip stringSet) (stringSet, error) { } if shouldUseGit(filepath.Join(config.BuildDir, pkg)) { - clone, err := gitDownload(baseURL+"/"+pkg+".git", config.BuildDir, pkg) + clone, err := gitDownload(baseURL+"/"+pkg+".git", buildDir, pkg) if err != nil { errs.Add(err) return @@ -841,7 +841,7 @@ func downloadPkgbuilds(bases []Base, toSkip stringSet) (stringSet, error) { mux.Unlock() } } else { - err := downloadAndUnpack(baseURL+base.URLPath(), config.BuildDir) + err := downloadAndUnpack(baseURL+base.URLPath(), buildDir) if err != nil { errs.Add(err) return diff --git a/vcs.go b/vcs.go index 53d949e2..584ed899 100644 --- a/vcs.go +++ b/vcs.go @@ -38,7 +38,7 @@ func createDevelDB() error { bases := getBases(info) toSkip := pkgbuildsToSkip(bases, sliceToStringSet(remoteNames)) - downloadPkgbuilds(bases, toSkip) + downloadPkgbuilds(bases, toSkip, config.BuildDir) srcinfos, _ := parseSrcinfoFiles(bases, false) for _, pkgbuild := range srcinfos {