Merge pull request #208 from Morganamilo/redownload

Add support to skip pkgbuild downloads.
This commit is contained in:
Morgana 2018-03-07 21:56:18 +00:00 committed by GitHub
commit a7be7a839d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 23 deletions

26
cmd.go
View file

@ -46,6 +46,9 @@ 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 of targets
--redownloadall Always download pkgbuilds of all AUR packages
--noredownload Skip pkgbuild download if in cache and up to date
Print specific options:
-c --complete Used for completions
@ -351,16 +354,6 @@ func handleConfig(option string) bool {
config.CleanAfter = true
case "noafterclean":
config.CleanAfter = false
// case "gendb":
// err = createDevelDB()
// if err != nil {
// fmt.Println(err)
// }
// err = saveVCSInfo()
// if err != nil {
// fmt.Println(err)
// }
// os.Exit(0)
case "devel":
config.Devel = true
case "nodevel":
@ -373,14 +366,14 @@ func handleConfig(option string) bool {
config.SortMode = TopDown
case "bottomup":
config.SortMode = BottomUp
// case "help":
// usage()
// os.Exit(0)
// case "version":
// fmt.Printf("yay v%s\n", version)
// os.Exit(0)
case "noconfirm":
config.NoConfirm = true
case "redownload":
config.ReDownload = "yes"
case "redownloadall":
config.ReDownload = "all"
case "noredownload":
config.ReDownload = "no"
default:
return false
}
@ -390,6 +383,7 @@ func handleConfig(option string) bool {
}
func handleVersion() {
fmt.Print(config.ReDownload)
fmt.Printf("yay v%s\n", version)
}

View file

@ -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"`
@ -128,6 +129,7 @@ func defaultSettings(config *Configuration) {
config.TarBin = "/usr/bin/bsdtar"
config.TimeUpdate = false
config.RequestSplitN = 150
config.ReDownload = "no"
}
// Editor returns the preferred system editor.

View file

@ -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
}
@ -389,20 +389,35 @@ func parsesrcinfosGenerate(pkgs []*rpc.Pkg, srcinfos map[string]*gopkg.PKGBUILD,
return nil
}
func dowloadPkgBuilds(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg) (err error) {
func downloadPkgBuilds(pkgs []*rpc.Pkg, targets stringSet, bases map[string][]*rpc.Pkg) error {
for k, pkg := range pkgs {
//todo make pretty
str := bold(cyan("::") + " Downloading (%d/%d): %s\n")
if config.ReDownload == "no" || (config.ReDownload == "yes" && !targets.get(pkg.Name)) {
dir := config.BuildDir + pkg.PackageBase + "/.SRCINFO"
pkgbuild, err := gopkg.ParseSRCINFO(dir)
if err == nil {
version, err := gopkg.NewCompleteVersion(pkg.Version)
if err == nil {
if !version.Newer(pkgbuild.Version()) {
str := bold(cyan("::") + " PKGBUILD up to date, Skipping (%d/%d): %s\n")
fmt.Printf(str, k+1, len(pkgs), formatPkgbase(pkg, bases))
continue
}
}
}
}
str := bold(cyan("::") + " Downloading PKGBUILD (%d/%d): %s\n")
fmt.Printf(str, k+1, len(pkgs), formatPkgbase(pkg, bases))
err = downloadAndUnpack(baseURL+pkg.URLPath, config.BuildDir, false)
err := downloadAndUnpack(baseURL+pkg.URLPath, config.BuildDir, false)
if err != nil {
return
return err
}
}
return
return nil
}
func downloadPkgBuildsSources(pkgs []*rpc.Pkg, bases map[string][]*rpc.Pkg) (err error) {

17
yay.8
View file

@ -151,6 +151,23 @@ the last modification time of each package's AUR page\&.
.RS 4
Do not consider build times during sysupgrade\&.
.RE
.PP
\fB\-\-redownload\fR
.RS 4
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
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
yay \fIfoo\fR