diff --git a/cmd.go b/cmd.go index 049fa45f..8ce6fdea 100644 --- a/cmd.go +++ b/cmd.go @@ -46,7 +46,8 @@ Permanent configuration options: --noafterclean Do not remove package sources after successful build --timeupdate Check package's AUR page for changes during sysupgrade --notimeupdate Do not checking of AUR page changes - --redownload Always download pkgbuilds + --redownload Always download pkgbuilds of targets + --redownloadall Always download pkgbuilds of all AUR packages --noredownload Skip pkgbuild download if in cache and up to date Print specific options: @@ -358,9 +359,11 @@ func handleConfig(option string) bool { case "noconfirm": config.NoConfirm = true case "redownload": - config.ReDownload = true + config.ReDownload = "yes" + case "redownloadall": + config.ReDownload = "all" case "noredownload": - config.ReDownload = false + config.ReDownload = "no" default: return false } @@ -370,6 +373,7 @@ func handleConfig(option string) bool { } func handleVersion() { + fmt.Print(config.ReDownload) fmt.Printf("yay v%s\n", version) } diff --git a/config.go b/config.go index d394f3e9..e95130ff 100644 --- a/config.go +++ b/config.go @@ -31,6 +31,7 @@ type Configuration struct { PacmanBin string `json:"pacmanbin"` PacmanConf string `json:"pacmanconf"` TarBin string `json:"tarbin"` + ReDownload string `json:"redownload"` RequestSplitN int `json:"requestsplitn"` SearchMode int `json:"-"` SortMode int `json:"sortmode"` @@ -39,7 +40,6 @@ type Configuration struct { NoConfirm bool `json:"-"` Devel bool `json:"devel"` CleanAfter bool `json:"cleanAfter"` - ReDownload bool `json:"redownload"` } var version = "3.373" @@ -113,7 +113,7 @@ func defaultSettings(config *Configuration) { config.TarBin = "/usr/bin/bsdtar" config.TimeUpdate = false config.RequestSplitN = 150 - config.ReDownload = false + config.ReDownload = "no" } // Editor returns the preferred system editor. diff --git a/install.go b/install.go index e0499df4..fb33c03d 100644 --- a/install.go +++ b/install.go @@ -164,7 +164,7 @@ func install(parser *arguments) error { return fmt.Errorf("Aborting due to user") } - err = dowloadPkgBuilds(dc.Aur, dc.Bases) + err = downloadPkgBuilds(dc.Aur, parser.targets, dc.Bases) if err != nil { return err } @@ -399,9 +399,9 @@ func parsesrcinfosGenerate(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD, return nil } -func dowloadPkgBuilds(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg) error { +func downloadPkgBuilds(pkgs []*rpc.Pkg, targets stringSet, bases map[string][]*rpc.Pkg) error { for k, pkg := range pkgs { - if !config.ReDownload { + if config.ReDownload == "no" || (config.ReDownload == "yes" && !targets.get(pkg.Name)) { dir := config.BuildDir + pkg.PackageBase + "/.SRCINFO" pkgbuild, err := gopkg.ParseSRCINFO(dir) diff --git a/yay.8 b/yay.8 index b070edd5..38fd30b6 100644 --- a/yay.8 +++ b/yay.8 @@ -154,13 +154,19 @@ Do not consider build times during sysupgrade\&. .PP \fB\-\-redownload\fR .RS 4 -When downloading pkgbuilds if the pkgbuild is found in cache and is equal or -newer than the AUR's version use that instead of downloading a new one\&. +Always download pkgbuilds of targets even when a copy is avaliable in cache\&. +.RE +.PP +\fB\-\-redownloadall\fR +.RS 4 +Always download pkgbuilds of all AUR packages even when a copy is avaliable +in cache\&. .RE .PP \fB\-\-noredownload\fR .RS 4 -Always download pkgbuilds even when a copy is avaliable in cache\&. +When downloading pkgbuilds if the pkgbuild is found in cache and is equal or +newer than the AUR's version use that instead of downloading a new one\&. .RE .SH "EXAMPLES" .PP