mirror of
https://github.com/Jguer/yay
synced 2024-10-02 22:33:47 +00:00
refactor(exe): move sudo loop into CmdBuilder
This commit is contained in:
parent
444151de0d
commit
5c11c01d85
10
clean.go
10
clean.go
|
@ -37,7 +37,7 @@ func cleanRemove(cmdArgs *parser.Arguments, pkgNames []string) error {
|
|||
_ = arguments.AddArg("R")
|
||||
arguments.AddTarget(pkgNames...)
|
||||
|
||||
return config.Runtime.CmdRunner.Show(
|
||||
return config.Runtime.CmdBuilder.Show(
|
||||
config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
arguments, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ func syncClean(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
}
|
||||
|
||||
if config.Runtime.Mode == parser.ModeRepo || config.Runtime.Mode == parser.ModeAny {
|
||||
if err := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
if err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -177,7 +177,7 @@ func cleanUntracked() error {
|
|||
|
||||
dir := filepath.Join(config.BuildDir, file.Name())
|
||||
if isGitRepository(dir) {
|
||||
if err := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildGitCmd(dir, "clean", "-fx")); err != nil {
|
||||
if err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildGitCmd(dir, "clean", "-fx")); err != nil {
|
||||
text.Warnln(gotext.Get("Unable to clean:"), dir)
|
||||
return err
|
||||
}
|
||||
|
@ -202,12 +202,12 @@ func cleanAfter(bases []dep.Base) {
|
|||
|
||||
text.OperationInfoln(gotext.Get("Cleaning (%d/%d): %s", i+1, len(bases), text.Cyan(dir)))
|
||||
|
||||
_, stderr, err := config.Runtime.CmdRunner.Capture(config.Runtime.CmdBuilder.BuildGitCmd(dir, "reset", "--hard", "HEAD"), 0)
|
||||
_, stderr, err := config.Runtime.CmdBuilder.Capture(config.Runtime.CmdBuilder.BuildGitCmd(dir, "reset", "--hard", "HEAD"), 0)
|
||||
if err != nil {
|
||||
text.Errorln(gotext.Get("error resetting %s: %s", base.String(), stderr))
|
||||
}
|
||||
|
||||
if err := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildGitCmd(dir, "clean", "-fx", "--exclude='*.pkg.*'")); err != nil {
|
||||
if err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildGitCmd(dir, "clean", "-fx", "--exclude='*.pkg.*'")); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
}
|
||||
}
|
||||
|
|
28
cmd.go
28
cmd.go
|
@ -150,7 +150,7 @@ func handleCmd(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
}
|
||||
|
||||
if config.SudoLoop && cmdArgs.NeedRoot(config.Runtime.Mode) {
|
||||
sudoLoopBackground()
|
||||
config.Runtime.CmdBuilder.SudoLoop()
|
||||
}
|
||||
|
||||
switch cmdArgs.Op {
|
||||
|
@ -158,10 +158,10 @@ func handleCmd(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
handleVersion()
|
||||
return nil
|
||||
case "D", "database":
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
case "F", "files":
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
case "Q", "query":
|
||||
return handleQuery(cmdArgs, dbExecutor)
|
||||
|
@ -170,10 +170,10 @@ func handleCmd(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
case "S", "sync":
|
||||
return handleSync(cmdArgs, dbExecutor)
|
||||
case "T", "deptest":
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
case "U", "upgrade":
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
case "G", "getpkgbuild":
|
||||
return handleGetpkgbuild(cmdArgs, dbExecutor)
|
||||
|
@ -216,7 +216,7 @@ func handleQuery(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
}
|
||||
return printUpdateList(cmdArgs, dbExecutor, cmdArgs.ExistsDouble("u", "sysupgrade"), filter)
|
||||
}
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
|
||||
|
@ -225,7 +225,7 @@ func handleHelp(cmdArgs *parser.Arguments) error {
|
|||
usage()
|
||||
return nil
|
||||
}
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
|
||||
|
@ -304,7 +304,7 @@ func handleSync(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
return syncSearch(targets, config.Runtime.AURClient, dbExecutor)
|
||||
}
|
||||
if cmdArgs.ExistsArg("p", "print", "print-format") {
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
if cmdArgs.ExistsArg("c", "clean") {
|
||||
|
@ -314,7 +314,7 @@ func handleSync(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
return syncList(config.Runtime.HTTPClient, cmdArgs, dbExecutor)
|
||||
}
|
||||
if cmdArgs.ExistsArg("g", "groups") {
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
if cmdArgs.ExistsArg("i", "info") {
|
||||
|
@ -327,14 +327,14 @@ func handleSync(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
return install(cmdArgs, dbExecutor, false)
|
||||
}
|
||||
if cmdArgs.ExistsArg("y", "refresh") {
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func handleRemove(cmdArgs *parser.Arguments, localCache *vcs.InfoStore) error {
|
||||
err := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
if err == nil {
|
||||
localCache.RemovePackage(cmdArgs.Targets)
|
||||
|
@ -450,10 +450,6 @@ func displayNumberMenu(pkgS []string, dbExecutor db.Executor, cmdArgs *parser.Ar
|
|||
return nil
|
||||
}
|
||||
|
||||
if config.SudoLoop {
|
||||
sudoLoopBackground()
|
||||
}
|
||||
|
||||
return install(arguments, dbExecutor, true)
|
||||
}
|
||||
|
||||
|
@ -499,7 +495,7 @@ func syncList(httpClient *http.Client, cmdArgs *parser.Arguments, dbExecutor db.
|
|||
}
|
||||
|
||||
if (config.Runtime.Mode == parser.ModeAny || config.Runtime.Mode == parser.ModeRepo) && (len(cmdArgs.Targets) != 0 || !aur) {
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
|
||||
|
|
14
diff.go
14
diff.go
|
@ -50,7 +50,7 @@ func showPkgbuildDiffs(bases []dep.Base, cloned map[string]bool) error {
|
|||
} else {
|
||||
args = append(args, "--color=never")
|
||||
}
|
||||
_ = config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildGitCmd(dir, args...))
|
||||
_ = config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildGitCmd(dir, args...))
|
||||
}
|
||||
|
||||
return errMulti.Return()
|
||||
|
@ -60,7 +60,7 @@ func showPkgbuildDiffs(bases []dep.Base, cloned map[string]bool) error {
|
|||
// HEAD@{upstream}
|
||||
func gitHasDiff(path, name string) (bool, error) {
|
||||
if gitHasLastSeenRef(path, name) {
|
||||
stdout, stderr, err := config.Runtime.CmdRunner.Capture(
|
||||
stdout, stderr, err := config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildGitCmd(filepath.Join(path, name), "rev-parse", gitDiffRefName, "HEAD@{upstream}"), 0)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("%s%s", stderr, err)
|
||||
|
@ -79,7 +79,7 @@ func gitHasDiff(path, name string) (bool, error) {
|
|||
// Return wether or not we have reviewed a diff yet. It checks for the existence of
|
||||
// YAY_DIFF_REVIEW in the git ref-list
|
||||
func gitHasLastSeenRef(path, name string) bool {
|
||||
_, _, err := config.Runtime.CmdRunner.Capture(
|
||||
_, _, err := config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildGitCmd(
|
||||
filepath.Join(path, name), "rev-parse", "--quiet", "--verify", gitDiffRefName), 0)
|
||||
return err == nil
|
||||
|
@ -89,7 +89,7 @@ func gitHasLastSeenRef(path, name string) bool {
|
|||
// If it does not it will return empty tree as no diff have been reviewed yet.
|
||||
func getLastSeenHash(path, name string) (string, error) {
|
||||
if gitHasLastSeenRef(path, name) {
|
||||
stdout, stderr, err := config.Runtime.CmdRunner.Capture(
|
||||
stdout, stderr, err := config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildGitCmd(
|
||||
filepath.Join(path, name), "rev-parse", gitDiffRefName), 0)
|
||||
if err != nil {
|
||||
|
@ -105,7 +105,7 @@ func getLastSeenHash(path, name string) (string, error) {
|
|||
// Update the YAY_DIFF_REVIEW ref to HEAD. We use this ref to determine which diff were
|
||||
// reviewed by the user
|
||||
func gitUpdateSeenRef(path, name string) error {
|
||||
_, stderr, err := config.Runtime.CmdRunner.Capture(
|
||||
_, stderr, err := config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildGitCmd(
|
||||
filepath.Join(path, name), "update-ref", gitDiffRefName, "HEAD"), 0)
|
||||
if err != nil {
|
||||
|
@ -115,14 +115,14 @@ func gitUpdateSeenRef(path, name string) error {
|
|||
}
|
||||
|
||||
func gitMerge(path, name string) error {
|
||||
_, stderr, err := config.Runtime.CmdRunner.Capture(
|
||||
_, stderr, err := config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildGitCmd(
|
||||
filepath.Join(path, name), "reset", "--hard", "HEAD"), 0)
|
||||
if err != nil {
|
||||
return fmt.Errorf(gotext.Get("error resetting %s: %s", name, stderr))
|
||||
}
|
||||
|
||||
_, stderr, err = config.Runtime.CmdRunner.Capture(
|
||||
_, stderr, err = config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildGitCmd(
|
||||
filepath.Join(path, name), "merge", "--no-edit", "--ff"), 0)
|
||||
if err != nil {
|
||||
|
|
31
exec.go
31
exec.go
|
@ -1,31 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"time"
|
||||
)
|
||||
|
||||
func sudoLoopBackground() {
|
||||
updateSudo()
|
||||
go sudoLoop()
|
||||
}
|
||||
|
||||
func sudoLoop() {
|
||||
for {
|
||||
updateSudo()
|
||||
time.Sleep(241 * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func updateSudo() {
|
||||
for {
|
||||
err := config.Runtime.CmdRunner.Show(exec.Command(config.SudoBin, "-v"))
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
2
get.go
2
get.go
|
@ -50,7 +50,7 @@ func getPkgbuilds(dbExecutor db.Executor, config *settings.Configuration, target
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cloned, errD := download.PKGBUILDRepos(dbExecutor, config.Runtime.CmdRunner,
|
||||
cloned, errD := download.PKGBUILDRepos(dbExecutor,
|
||||
config.Runtime.CmdBuilder, targets, config.Runtime.Mode, config.AURURL, wd, force)
|
||||
if errD != nil {
|
||||
text.Errorln(errD)
|
||||
|
|
30
install.go
30
install.go
|
@ -38,7 +38,7 @@ func asdeps(cmdArgs *parser.Arguments, pkgs []string) (err error) {
|
|||
cmdArgs = cmdArgs.CopyGlobal()
|
||||
_ = cmdArgs.AddArg("q", "D", "asdeps")
|
||||
cmdArgs.AddTarget(pkgs...)
|
||||
err = config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
err = config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
if err != nil {
|
||||
return fmt.Errorf(gotext.Get("error updating package install reason to dependency"))
|
||||
|
@ -55,7 +55,7 @@ func asexp(cmdArgs *parser.Arguments, pkgs []string) (err error) {
|
|||
cmdArgs = cmdArgs.CopyGlobal()
|
||||
_ = cmdArgs.AddArg("q", "D", "asexplicit")
|
||||
cmdArgs.AddTarget(pkgs...)
|
||||
err = config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
err = config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
if err != nil {
|
||||
return fmt.Errorf(gotext.Get("error updating package install reason to explicit"))
|
||||
|
@ -170,7 +170,7 @@ func install(cmdArgs *parser.Arguments, dbExecutor db.Executor, ignoreProviders
|
|||
if arguments.ExistsArg("ignore") {
|
||||
cmdArgs.CreateOrAppendOption("ignore", arguments.GetArgs("ignore")...)
|
||||
}
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
|
||||
|
@ -253,7 +253,7 @@ func install(cmdArgs *parser.Arguments, dbExecutor db.Executor, ignoreProviders
|
|||
len(toSkipSlice), len(toClone), text.Cyan(strings.Join(toSkipSlice, ", "))))
|
||||
}
|
||||
|
||||
cloned, errA := download.AURPKGBUILDRepos(config.Runtime.CmdRunner,
|
||||
cloned, errA := download.AURPKGBUILDRepos(
|
||||
config.Runtime.CmdBuilder, toClone, config.AURURL, config.BuildDir, false)
|
||||
if errA != nil {
|
||||
return err
|
||||
|
@ -344,7 +344,7 @@ func install(cmdArgs *parser.Arguments, dbExecutor db.Executor, ignoreProviders
|
|||
}
|
||||
|
||||
if len(arguments.Targets) > 0 || arguments.ExistsArg("u") {
|
||||
if errShow := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
if errShow := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
arguments, config.Runtime.Mode, settings.NoConfirm)); errShow != nil {
|
||||
return errors.New(gotext.Get("error installing repo packages"))
|
||||
}
|
||||
|
@ -404,7 +404,7 @@ func removeMake(do *dep.Order) error {
|
|||
|
||||
oldValue := settings.NoConfirm
|
||||
settings.NoConfirm = true
|
||||
err = config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
err = config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
removeArguments, config.Runtime.Mode, settings.NoConfirm))
|
||||
settings.NoConfirm = oldValue
|
||||
|
||||
|
@ -449,7 +449,7 @@ func earlyPacmanCall(cmdArgs *parser.Arguments, dbExecutor db.Executor) error {
|
|||
}
|
||||
|
||||
if cmdArgs.ExistsArg("y", "refresh") || cmdArgs.ExistsArg("u", "sysupgrade") || len(arguments.Targets) > 0 {
|
||||
if err := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
if err := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
arguments, config.Runtime.Mode, settings.NoConfirm)); err != nil {
|
||||
return errors.New(gotext.Get("error installing repo packages"))
|
||||
}
|
||||
|
@ -466,7 +466,7 @@ func earlyRefresh(cmdArgs *parser.Arguments) error {
|
|||
arguments.DelArg("i", "info")
|
||||
arguments.DelArg("l", "list")
|
||||
arguments.ClearTargets()
|
||||
return config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
return config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
arguments, config.Runtime.Mode, settings.NoConfirm))
|
||||
}
|
||||
|
||||
|
@ -521,7 +521,7 @@ nextpkg:
|
|||
}
|
||||
|
||||
func parsePackageList(dir string) (pkgdests map[string]string, pkgVersion string, err error) {
|
||||
stdout, stderr, err := config.Runtime.CmdRunner.Capture(
|
||||
stdout, stderr, err := config.Runtime.CmdBuilder.Capture(
|
||||
config.Runtime.CmdBuilder.BuildMakepkgCmd(dir, "--packagelist"), 0)
|
||||
if err != nil {
|
||||
return nil, "", fmt.Errorf("%s %s", stderr, err)
|
||||
|
@ -853,7 +853,7 @@ func downloadPkgbuildsSources(bases []dep.Base, incompatible stringset.StringSet
|
|||
args = append(args, "--ignorearch")
|
||||
}
|
||||
|
||||
err = config.Runtime.CmdRunner.Show(
|
||||
err = config.Runtime.CmdBuilder.Show(
|
||||
config.Runtime.CmdBuilder.BuildMakepkgCmd(dir, args...))
|
||||
if err != nil {
|
||||
return errors.New(gotext.Get("error downloading sources: %s", text.Cyan(base.String())))
|
||||
|
@ -905,7 +905,7 @@ func buildInstallPkgbuilds(
|
|||
return nil
|
||||
}
|
||||
|
||||
if errShow := config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
if errShow := config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
arguments, config.Runtime.Mode, settings.NoConfirm)); errShow != nil {
|
||||
return errShow
|
||||
}
|
||||
|
@ -965,7 +965,7 @@ func buildInstallPkgbuilds(
|
|||
}
|
||||
|
||||
// pkgver bump
|
||||
if err = config.Runtime.CmdRunner.Show(
|
||||
if err = config.Runtime.CmdBuilder.Show(
|
||||
config.Runtime.CmdBuilder.BuildMakepkgCmd(dir, args...)); err != nil {
|
||||
return errors.New(gotext.Get("error making: %s", base.String()))
|
||||
}
|
||||
|
@ -1003,7 +1003,7 @@ func buildInstallPkgbuilds(
|
|||
}
|
||||
|
||||
if installed {
|
||||
err = config.Runtime.CmdRunner.Show(
|
||||
err = config.Runtime.CmdBuilder.Show(
|
||||
config.Runtime.CmdBuilder.BuildMakepkgCmd(
|
||||
dir, "-c", "--nobuild", "--noextract", "--ignorearch"))
|
||||
if err != nil {
|
||||
|
@ -1016,7 +1016,7 @@ func buildInstallPkgbuilds(
|
|||
}
|
||||
|
||||
if built {
|
||||
err = config.Runtime.CmdRunner.Show(
|
||||
err = config.Runtime.CmdBuilder.Show(
|
||||
config.Runtime.CmdBuilder.BuildMakepkgCmd(
|
||||
dir, "-c", "--nobuild", "--noextract", "--ignorearch"))
|
||||
if err != nil {
|
||||
|
@ -1031,7 +1031,7 @@ func buildInstallPkgbuilds(
|
|||
args = append(args, "--ignorearch")
|
||||
}
|
||||
|
||||
if errMake := config.Runtime.CmdRunner.Show(
|
||||
if errMake := config.Runtime.CmdBuilder.Show(
|
||||
config.Runtime.CmdBuilder.BuildMakepkgCmd(
|
||||
dir, args...)); errMake != nil {
|
||||
return errors.New(gotext.Get("error making: %s", base.String()))
|
||||
|
|
|
@ -83,12 +83,12 @@ func ABSPKGBUILD(httpClient *http.Client, dbName, pkgName string) ([]byte, error
|
|||
}
|
||||
|
||||
// ABSPKGBUILDRepo retrieves the PKGBUILD repository to a dest directory.
|
||||
func ABSPKGBUILDRepo(cmdRunner exe.Runner, cmdBuilder exe.GitCmdBuilder, dbName, pkgName, dest string, force bool) (bool, error) {
|
||||
func ABSPKGBUILDRepo(cmdBuilder exe.GitCmdBuilder, dbName, pkgName, dest string, force bool) (bool, error) {
|
||||
pkgURL, err := getPackageRepoURL(dbName)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
return downloadGitRepo(cmdRunner, cmdBuilder, pkgURL,
|
||||
return downloadGitRepo(cmdBuilder, pkgURL,
|
||||
pkgName, dest, force, "--single-branch", "-b", "packages/"+pkgName)
|
||||
}
|
||||
|
|
|
@ -197,11 +197,12 @@ func TestABSPKGBUILDRepo(t *testing.T) {
|
|||
test: t,
|
||||
want: "/usr/local/bin/git --no-replace-objects -C /tmp/doesnt-exist clone --no-progress --single-branch -b packages/linux https://github.com/archlinux/svntogit-packages.git linux",
|
||||
parentBuilder: &exe.CmdBuilder{
|
||||
Runner: cmdRunner,
|
||||
GitBin: "/usr/local/bin/git",
|
||||
GitFlags: []string{"--no-replace-objects"},
|
||||
},
|
||||
}
|
||||
newClone, err := ABSPKGBUILDRepo(cmdRunner, cmdBuilder, "core", "linux", "/tmp/doesnt-exist", false)
|
||||
newClone, err := ABSPKGBUILDRepo(cmdBuilder, "core", "linux", "/tmp/doesnt-exist", false)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, newClone)
|
||||
}
|
||||
|
@ -221,11 +222,12 @@ func TestABSPKGBUILDRepoExistsPerms(t *testing.T) {
|
|||
test: t,
|
||||
want: fmt.Sprintf("/usr/local/bin/git --no-replace-objects -C %s/linux pull --ff-only", dir),
|
||||
parentBuilder: &exe.CmdBuilder{
|
||||
Runner: cmdRunner,
|
||||
GitBin: "/usr/local/bin/git",
|
||||
GitFlags: []string{"--no-replace-objects"},
|
||||
},
|
||||
}
|
||||
newClone, err := ABSPKGBUILDRepo(cmdRunner, cmdBuilder, "core", "linux", dir, false)
|
||||
newClone, err := ABSPKGBUILDRepo(cmdBuilder, "core", "linux", dir, false)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, false, newClone)
|
||||
}
|
||||
|
|
|
@ -41,14 +41,13 @@ func AURPKGBUILD(httpClient *http.Client, pkgName string) ([]byte, error) {
|
|||
}
|
||||
|
||||
// AURPkgbuildRepo retrieves the PKGBUILD repository to a dest directory.
|
||||
func AURPKGBUILDRepo(cmdRunner exe.Runner, cmdBuilder exe.GitCmdBuilder, aurURL, pkgName, dest string, force bool) (bool, error) {
|
||||
func AURPKGBUILDRepo(cmdBuilder exe.GitCmdBuilder, aurURL, pkgName, dest string, force bool) (bool, error) {
|
||||
pkgURL := fmt.Sprintf("%s/%s.git", aurURL, pkgName)
|
||||
|
||||
return downloadGitRepo(cmdRunner, cmdBuilder, pkgURL, pkgName, dest, force)
|
||||
return downloadGitRepo(cmdBuilder, pkgURL, pkgName, dest, force)
|
||||
}
|
||||
|
||||
func AURPKGBUILDRepos(
|
||||
cmdRunner exe.Runner,
|
||||
cmdBuilder exe.GitCmdBuilder,
|
||||
targets []string, aurURL, dest string, force bool) (map[string]bool, error) {
|
||||
cloned := make(map[string]bool, len(targets))
|
||||
|
@ -67,7 +66,7 @@ func AURPKGBUILDRepos(
|
|||
wg.Add(1)
|
||||
|
||||
go func(target string) {
|
||||
newClone, err := AURPKGBUILDRepo(cmdRunner, cmdBuilder, aurURL, target, dest, force)
|
||||
newClone, err := AURPKGBUILDRepo(cmdBuilder, aurURL, target, dest, force)
|
||||
|
||||
if err != nil {
|
||||
errs.Add(err)
|
||||
|
|
|
@ -80,11 +80,12 @@ func TestAURPKGBUILDRepo(t *testing.T) {
|
|||
test: t,
|
||||
want: "/usr/local/bin/git --no-replace-objects -C /tmp/doesnt-exist clone --no-progress https://aur.archlinux.org/yay-bin.git yay-bin",
|
||||
parentBuilder: &exe.CmdBuilder{
|
||||
Runner: cmdRunner,
|
||||
GitBin: "/usr/local/bin/git",
|
||||
GitFlags: []string{"--no-replace-objects"},
|
||||
},
|
||||
}
|
||||
newCloned, err := AURPKGBUILDRepo(cmdRunner, cmdBuilder, "https://aur.archlinux.org", "yay-bin", "/tmp/doesnt-exist", false)
|
||||
newCloned, err := AURPKGBUILDRepo(cmdBuilder, "https://aur.archlinux.org", "yay-bin", "/tmp/doesnt-exist", false)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, true, newCloned)
|
||||
}
|
||||
|
@ -104,11 +105,12 @@ func TestAURPKGBUILDRepoExistsPerms(t *testing.T) {
|
|||
test: t,
|
||||
want: fmt.Sprintf("/usr/local/bin/git --no-replace-objects -C %s/yay-bin pull --ff-only", dir),
|
||||
parentBuilder: &exe.CmdBuilder{
|
||||
Runner: cmdRunner,
|
||||
GitBin: "/usr/local/bin/git",
|
||||
GitFlags: []string{"--no-replace-objects"},
|
||||
},
|
||||
}
|
||||
cloned, err := AURPKGBUILDRepo(cmdRunner, cmdBuilder, "https://aur.archlinux.org", "yay-bin", dir, false)
|
||||
cloned, err := AURPKGBUILDRepo(cmdBuilder, "https://aur.archlinux.org", "yay-bin", dir, false)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, false, cloned)
|
||||
}
|
||||
|
|
|
@ -22,8 +22,8 @@ type DBSearcher interface {
|
|||
SatisfierFromDB(string, string) db.IPackage
|
||||
}
|
||||
|
||||
func downloadGitRepo(cmdRunner exe.Runner,
|
||||
cmdBuilder exe.GitCmdBuilder, pkgURL, pkgName, dest string, force bool, gitArgs ...string) (bool, error) {
|
||||
func downloadGitRepo(cmdBuilder exe.GitCmdBuilder,
|
||||
pkgURL, pkgName, dest string, force bool, gitArgs ...string) (bool, error) {
|
||||
finalDir := filepath.Join(dest, pkgName)
|
||||
newClone := true
|
||||
|
||||
|
@ -41,7 +41,7 @@ func downloadGitRepo(cmdRunner exe.Runner,
|
|||
cloneArgs = append(cloneArgs, gitArgs...)
|
||||
cmd := cmdBuilder.BuildGitCmd(dest, cloneArgs...)
|
||||
|
||||
_, stderr, errCapture := cmdRunner.Capture(cmd, 0)
|
||||
_, stderr, errCapture := cmdBuilder.Capture(cmd, 0)
|
||||
if errCapture != nil {
|
||||
return false, ErrGetPKGBUILDRepo{inner: errCapture, pkgName: pkgName, errOut: stderr}
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ func downloadGitRepo(cmdRunner exe.Runner,
|
|||
} else {
|
||||
cmd := cmdBuilder.BuildGitCmd(filepath.Join(dest, pkgName), "pull", "--ff-only")
|
||||
|
||||
_, stderr, errCmd := cmdRunner.Capture(cmd, 0)
|
||||
_, stderr, errCmd := cmdBuilder.Capture(cmd, 0)
|
||||
if errCmd != nil {
|
||||
return false, ErrGetPKGBUILDRepo{inner: errCmd, pkgName: pkgName, errOut: stderr}
|
||||
}
|
||||
|
@ -126,7 +126,6 @@ func PKGBUILDs(dbExecutor DBSearcher, httpClient *http.Client, targets []string,
|
|||
}
|
||||
|
||||
func PKGBUILDRepos(dbExecutor DBSearcher,
|
||||
cmdRunner exe.Runner,
|
||||
cmdBuilder exe.GitCmdBuilder,
|
||||
targets []string, mode parser.TargetMode, aurURL, dest string, force bool) (map[string]bool, error) {
|
||||
cloned := make(map[string]bool, len(targets))
|
||||
|
@ -155,9 +154,9 @@ func PKGBUILDRepos(dbExecutor DBSearcher,
|
|||
var newClone bool
|
||||
|
||||
if aur {
|
||||
newClone, err = AURPKGBUILDRepo(cmdRunner, cmdBuilder, aurURL, pkgName, dest, force)
|
||||
newClone, err = AURPKGBUILDRepo(cmdBuilder, aurURL, pkgName, dest, force)
|
||||
} else {
|
||||
newClone, err = ABSPKGBUILDRepo(cmdRunner, cmdBuilder, dbName, pkgName, dest, force)
|
||||
newClone, err = ABSPKGBUILDRepo(cmdBuilder, dbName, pkgName, dest, force)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
|
|
|
@ -9,8 +9,7 @@ import (
|
|||
"github.com/Jguer/yay/v10/pkg/settings/exe"
|
||||
)
|
||||
|
||||
type testRunner struct {
|
||||
}
|
||||
type testRunner struct{}
|
||||
|
||||
func (t *testRunner) Capture(cmd *exec.Cmd, timeout int64) (stdout string, stderr string, err error) {
|
||||
return "", "", nil
|
||||
|
@ -35,3 +34,11 @@ func (t *testGitBuilder) BuildGitCmd(dir string, extraArgs ...string) *exec.Cmd
|
|||
t.index += 1
|
||||
return cmd
|
||||
}
|
||||
|
||||
func (c *testGitBuilder) Show(cmd *exec.Cmd) error {
|
||||
return c.parentBuilder.Show(cmd)
|
||||
}
|
||||
|
||||
func (c *testGitBuilder) Capture(cmd *exec.Cmd, timeout int64) (stdout, stderr string, err error) {
|
||||
return c.parentBuilder.Capture(cmd, timeout)
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ func (c *Configuration) ParseCommandLine(a *parser.Arguments) error {
|
|||
c.extractYayOptions(a)
|
||||
|
||||
// Reload CmdBuilder
|
||||
c.Runtime.CmdBuilder = c.CmdBuilder()
|
||||
c.Runtime.CmdBuilder = c.CmdBuilder(nil)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -208,8 +208,7 @@ func NewConfig(version string) (*Configuration, error) {
|
|||
Mode: parser.ModeAny,
|
||||
SaveConfig: false,
|
||||
CompletionPath: filepath.Join(cacheHome, completionFileName),
|
||||
CmdRunner: &exe.OSRunner{},
|
||||
CmdBuilder: newConfig.CmdBuilder(),
|
||||
CmdBuilder: newConfig.CmdBuilder(nil),
|
||||
PacmanConf: nil,
|
||||
VCSStore: nil,
|
||||
HTTPClient: &http.Client{},
|
||||
|
@ -229,8 +228,8 @@ func NewConfig(version string) (*Configuration, error) {
|
|||
return nil, errAUR
|
||||
}
|
||||
|
||||
newConfig.Runtime.VCSStore = vcs.NewInfoStore(filepath.Join(cacheHome, vcsFileName),
|
||||
newConfig.Runtime.CmdRunner, newConfig.Runtime.CmdBuilder)
|
||||
newConfig.Runtime.VCSStore = vcs.NewInfoStore(
|
||||
filepath.Join(cacheHome, vcsFileName), newConfig.Runtime.CmdBuilder)
|
||||
|
||||
if err := initDir(newConfig.BuildDir); err != nil {
|
||||
return nil, err
|
||||
|
@ -259,7 +258,10 @@ func (c *Configuration) load(configPath string) {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *Configuration) CmdBuilder() exe.ICmdBuilder {
|
||||
func (c *Configuration) CmdBuilder(runner exe.Runner) exe.ICmdBuilder {
|
||||
if runner == nil {
|
||||
runner = &exe.OSRunner{}
|
||||
}
|
||||
return &exe.CmdBuilder{
|
||||
GitBin: c.GitBin,
|
||||
GitFlags: strings.Fields(c.GitFlags),
|
||||
|
@ -268,7 +270,10 @@ func (c *Configuration) CmdBuilder() exe.ICmdBuilder {
|
|||
MakepkgBin: c.MakepkgBin,
|
||||
SudoBin: c.SudoBin,
|
||||
SudoFlags: strings.Fields(c.SudoFlags),
|
||||
SudoLoopEnabled: false,
|
||||
PacmanBin: c.PacmanBin,
|
||||
PacmanConfigPath: c.PacmanConf,
|
||||
PacmanDBPath: "",
|
||||
Runner: runner,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,16 +13,21 @@ import (
|
|||
"github.com/Jguer/yay/v10/pkg/text"
|
||||
)
|
||||
|
||||
const SudoLoopDuration = 241
|
||||
|
||||
type GitCmdBuilder interface {
|
||||
Runner
|
||||
BuildGitCmd(dir string, extraArgs ...string) *exec.Cmd
|
||||
}
|
||||
|
||||
type ICmdBuilder interface {
|
||||
Runner
|
||||
BuildGitCmd(dir string, extraArgs ...string) *exec.Cmd
|
||||
BuildMakepkgCmd(dir string, extraArgs ...string) *exec.Cmd
|
||||
BuildPacmanCmd(args *parser.Arguments, mode parser.TargetMode, noConfirm bool) *exec.Cmd
|
||||
AddMakepkgFlag(string)
|
||||
SetPacmanDBPath(string)
|
||||
SudoLoop()
|
||||
}
|
||||
|
||||
type CmdBuilder struct {
|
||||
|
@ -33,9 +38,11 @@ type CmdBuilder struct {
|
|||
MakepkgBin string
|
||||
SudoBin string
|
||||
SudoFlags []string
|
||||
SudoLoopEnabled bool
|
||||
PacmanBin string
|
||||
PacmanConfigPath string
|
||||
PacmanDBPath string
|
||||
Runner Runner
|
||||
}
|
||||
|
||||
func (c *CmdBuilder) BuildGitCmd(dir string, extraArgs ...string) *exec.Cmd {
|
||||
|
@ -123,3 +130,34 @@ func waitLock(dbPath string) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *CmdBuilder) SudoLoop() {
|
||||
c.updateSudo()
|
||||
go c.sudoLoopBackground()
|
||||
}
|
||||
|
||||
func (c *CmdBuilder) sudoLoopBackground() {
|
||||
for {
|
||||
c.updateSudo()
|
||||
time.Sleep(SudoLoopDuration * time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *CmdBuilder) updateSudo() {
|
||||
for {
|
||||
err := c.Show(exec.Command(c.SudoBin, "-v"))
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *CmdBuilder) Show(cmd *exec.Cmd) error {
|
||||
return c.Runner.Show(cmd)
|
||||
}
|
||||
|
||||
func (c *CmdBuilder) Capture(cmd *exec.Cmd, timeout int64) (stdout, stderr string, err error) {
|
||||
return c.Runner.Capture(cmd, timeout)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ type Runtime struct {
|
|||
PacmanConf *pacmanconf.Config
|
||||
VCSStore *vcs.InfoStore
|
||||
CmdBuilder exe.ICmdBuilder
|
||||
CmdRunner exe.Runner
|
||||
HTTPClient *http.Client
|
||||
AURClient *aur.Client
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import (
|
|||
|
||||
"github.com/Jguer/yay/v10/pkg/db/mock"
|
||||
"github.com/Jguer/yay/v10/pkg/settings"
|
||||
"github.com/Jguer/yay/v10/pkg/settings/exe"
|
||||
"github.com/Jguer/yay/v10/pkg/vcs"
|
||||
)
|
||||
|
||||
|
@ -109,7 +110,7 @@ func Test_upDevel(t *testing.T) {
|
|||
config, err := settings.NewConfig("v0")
|
||||
assert.NoError(t, err)
|
||||
|
||||
config.Runtime.CmdRunner = &MockRunner{
|
||||
config.Runtime.CmdBuilder = config.CmdBuilder(&MockRunner{
|
||||
Returned: []string{
|
||||
"7f4c277ce7149665d1c79b76ca8fbb832a65a03b HEAD",
|
||||
"7f4c277ce7149665d1c79b76ca8fbb832a65a03b HEAD",
|
||||
|
@ -117,7 +118,7 @@ func Test_upDevel(t *testing.T) {
|
|||
"cccccccccccccccccccccccccccccccccccccccc HEAD",
|
||||
"991c5b4146fd27f4aacf4e3111258a848934aaa1 HEAD",
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
type args struct {
|
||||
remote []alpm.IPackage
|
||||
|
@ -134,7 +135,6 @@ func Test_upDevel(t *testing.T) {
|
|||
name: "No Updates",
|
||||
args: args{
|
||||
cached: vcs.InfoStore{
|
||||
Runner: config.Runtime.CmdRunner,
|
||||
CmdBuilder: config.Runtime.CmdBuilder,
|
||||
},
|
||||
remote: []alpm.IPackage{
|
||||
|
@ -154,7 +154,6 @@ func Test_upDevel(t *testing.T) {
|
|||
finalLen: 3,
|
||||
args: args{
|
||||
cached: vcs.InfoStore{
|
||||
Runner: config.Runtime.CmdRunner,
|
||||
CmdBuilder: config.Runtime.CmdBuilder,
|
||||
OriginsByPackage: map[string]vcs.OriginInfoByURL{
|
||||
"hello": {
|
||||
|
@ -225,7 +224,6 @@ func Test_upDevel(t *testing.T) {
|
|||
finalLen: 1,
|
||||
args: args{
|
||||
cached: vcs.InfoStore{
|
||||
Runner: config.Runtime.CmdRunner,
|
||||
CmdBuilder: config.Runtime.CmdBuilder,
|
||||
OriginsByPackage: map[string]vcs.OriginInfoByURL{
|
||||
"hello": {
|
||||
|
@ -247,7 +245,6 @@ func Test_upDevel(t *testing.T) {
|
|||
finalLen: 1,
|
||||
args: args{
|
||||
cached: vcs.InfoStore{
|
||||
Runner: config.Runtime.CmdRunner,
|
||||
CmdBuilder: config.Runtime.CmdBuilder,
|
||||
OriginsByPackage: map[string]vcs.OriginInfoByURL{
|
||||
"hello": {
|
||||
|
@ -267,7 +264,7 @@ func Test_upDevel(t *testing.T) {
|
|||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
config.Runtime.CmdRunner.(*MockRunner).t = t
|
||||
config.Runtime.CmdBuilder.(*exe.CmdBuilder).Runner.(*MockRunner).t = t
|
||||
got := UpDevel(tt.args.remote, tt.args.aurdata, &tt.args.cached)
|
||||
assert.ElementsMatch(t, tt.want.Up, got.Up)
|
||||
assert.Equal(t, tt.finalLen, len(tt.args.cached.OriginsByPackage))
|
||||
|
|
|
@ -20,7 +20,6 @@ import (
|
|||
type InfoStore struct {
|
||||
OriginsByPackage map[string]OriginInfoByURL
|
||||
FilePath string
|
||||
Runner exe.Runner
|
||||
CmdBuilder exe.GitCmdBuilder
|
||||
}
|
||||
|
||||
|
@ -42,12 +41,11 @@ type OriginInfo struct {
|
|||
SHA string `json:"sha"`
|
||||
}
|
||||
|
||||
func NewInfoStore(filePath string, runner exe.Runner, cmdBuilder exe.GitCmdBuilder) *InfoStore {
|
||||
func NewInfoStore(filePath string, cmdBuilder exe.GitCmdBuilder) *InfoStore {
|
||||
infoStore := &InfoStore{
|
||||
CmdBuilder: cmdBuilder,
|
||||
FilePath: filePath,
|
||||
OriginsByPackage: map[string]OriginInfoByURL{},
|
||||
Runner: runner,
|
||||
}
|
||||
|
||||
return infoStore
|
||||
|
@ -59,7 +57,7 @@ func (v *InfoStore) getCommit(url, branch string, protocols []string) string {
|
|||
protocol := protocols[len(protocols)-1]
|
||||
|
||||
cmd := v.CmdBuilder.BuildGitCmd("", "ls-remote", protocol+"://"+url, branch)
|
||||
stdout, _, err := v.Runner.Capture(cmd, 5)
|
||||
stdout, _, err := v.CmdBuilder.Capture(cmd, 5)
|
||||
if err != nil {
|
||||
if exiterr, ok := err.(*exec.ExitError); ok && exiterr.ExitCode() == 128 {
|
||||
text.Warnln(gotext.Get("devel check for package failed: '%s' encountered an error", cmd.String()))
|
||||
|
|
|
@ -55,7 +55,6 @@ func TestParsing(t *testing.T) {
|
|||
func TestNewInfoStore(t *testing.T) {
|
||||
type args struct {
|
||||
filePath string
|
||||
runner exe.Runner
|
||||
cmdBuilder *exe.CmdBuilder
|
||||
}
|
||||
tests := []struct {
|
||||
|
@ -66,18 +65,16 @@ func TestNewInfoStore(t *testing.T) {
|
|||
name: "normal",
|
||||
args: args{
|
||||
"/tmp/a.json",
|
||||
&exe.OSRunner{},
|
||||
&exe.CmdBuilder{GitBin: "git", GitFlags: []string{"--a", "--b"}},
|
||||
&exe.CmdBuilder{GitBin: "git", GitFlags: []string{"--a", "--b"}, Runner: &exe.OSRunner{}},
|
||||
},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got := NewInfoStore(tt.args.filePath, tt.args.runner, tt.args.cmdBuilder)
|
||||
got := NewInfoStore(tt.args.filePath, tt.args.cmdBuilder)
|
||||
assert.NotNil(t, got)
|
||||
assert.Equal(t, []string{"--a", "--b"}, got.CmdBuilder.(*exe.CmdBuilder).GitFlags)
|
||||
assert.Equal(t, tt.args.cmdBuilder, got.CmdBuilder)
|
||||
assert.Equal(t, tt.args.runner, got.Runner)
|
||||
assert.Equal(t, "/tmp/a.json", got.FilePath)
|
||||
})
|
||||
}
|
||||
|
@ -102,7 +99,6 @@ func (r *MockRunner) Capture(cmd *exec.Cmd, timeout int64) (stdout, stderr strin
|
|||
|
||||
func TestInfoStore_NeedsUpdate(t *testing.T) {
|
||||
type fields struct {
|
||||
Runner exe.Runner
|
||||
CmdBuilder *exe.CmdBuilder
|
||||
}
|
||||
type args struct {
|
||||
|
@ -123,10 +119,9 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
SHA: "991c5b4146fd27f4aacf4e3111258a848934aaa1",
|
||||
},
|
||||
}}, fields: fields{
|
||||
Runner: &MockRunner{
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}, Runner: &MockRunner{
|
||||
Returned: []string{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HEAD"},
|
||||
},
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
}},
|
||||
},
|
||||
want: true,
|
||||
},
|
||||
|
@ -144,13 +139,12 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
SHA: "991c5b4146fd27f4aacf4e3111258a848934aaa1",
|
||||
},
|
||||
}}, fields: fields{
|
||||
Runner: &MockRunner{
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}, Runner: &MockRunner{
|
||||
Returned: []string{
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HEAD",
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HEAD",
|
||||
},
|
||||
},
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
}},
|
||||
},
|
||||
want: true,
|
||||
},
|
||||
|
@ -163,10 +157,9 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
SHA: "991c5b4146fd27f4aacf4e3111258a848934aaa1",
|
||||
},
|
||||
}}, fields: fields{
|
||||
Runner: &MockRunner{
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}, Runner: &MockRunner{
|
||||
Returned: []string{"991c5b4146fd27f4aacf4e3111258a848934aaa1 HEAD"},
|
||||
},
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
}},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
|
@ -179,10 +172,9 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
SHA: "991c5b4146fd27f4aacf4e3111258a848934aaa1",
|
||||
},
|
||||
}}, fields: fields{
|
||||
Runner: &MockRunner{
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}, Runner: &MockRunner{
|
||||
Returned: []string{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
|
||||
},
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
}},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
|
@ -195,10 +187,12 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
SHA: "991c5b4146fd27f4aacf4e3111258a848934aaa1",
|
||||
},
|
||||
}}, fields: fields{
|
||||
Runner: &MockRunner{
|
||||
Returned: []string{"error"},
|
||||
CmdBuilder: &exe.CmdBuilder{
|
||||
GitBin: "git", GitFlags: []string{""},
|
||||
Runner: &MockRunner{
|
||||
Returned: []string{"error"},
|
||||
},
|
||||
},
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
|
@ -211,10 +205,9 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
SHA: "991c5b4146fd27f4aacf4e3111258a848934aaa1",
|
||||
},
|
||||
}}, fields: fields{
|
||||
Runner: &MockRunner{
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}, Runner: &MockRunner{
|
||||
Returned: []string{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
|
||||
},
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
}},
|
||||
},
|
||||
want: false,
|
||||
},
|
||||
|
@ -222,7 +215,6 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
v := &InfoStore{
|
||||
Runner: tt.fields.Runner,
|
||||
CmdBuilder: tt.fields.CmdBuilder,
|
||||
}
|
||||
got := v.NeedsUpdate(tt.args.infos)
|
||||
|
@ -234,7 +226,6 @@ func TestInfoStore_NeedsUpdate(t *testing.T) {
|
|||
func TestInfoStore_Update(t *testing.T) {
|
||||
type fields struct {
|
||||
OriginsByPackage map[string]OriginInfoByURL
|
||||
Runner exe.Runner
|
||||
CmdBuilder *exe.CmdBuilder
|
||||
}
|
||||
type args struct {
|
||||
|
@ -254,8 +245,10 @@ func TestInfoStore_Update(t *testing.T) {
|
|||
},
|
||||
fields: fields{
|
||||
OriginsByPackage: make(map[string]OriginInfoByURL),
|
||||
CmdBuilder: &exe.CmdBuilder{GitBin: "git", GitFlags: []string{""}},
|
||||
Runner: &MockRunner{Returned: []string{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HEAD"}},
|
||||
CmdBuilder: &exe.CmdBuilder{
|
||||
GitBin: "git", GitFlags: []string{""},
|
||||
Runner: &MockRunner{Returned: []string{"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa HEAD"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
@ -269,7 +262,6 @@ func TestInfoStore_Update(t *testing.T) {
|
|||
v := &InfoStore{
|
||||
OriginsByPackage: tt.fields.OriginsByPackage,
|
||||
FilePath: file.Name(),
|
||||
Runner: tt.fields.Runner,
|
||||
CmdBuilder: tt.fields.CmdBuilder,
|
||||
}
|
||||
var mux sync.Mutex
|
||||
|
|
2
query.go
2
query.go
|
@ -217,7 +217,7 @@ func syncInfo(cmdArgs *parser.Arguments, pkgS []string, dbExecutor db.Executor)
|
|||
arguments := cmdArgs.Copy()
|
||||
arguments.ClearTargets()
|
||||
arguments.AddTarget(repoS...)
|
||||
err = config.Runtime.CmdRunner.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
err = config.Runtime.CmdBuilder.Show(config.Runtime.CmdBuilder.BuildPacmanCmd(
|
||||
cmdArgs, config.Runtime.Mode, settings.NoConfirm))
|
||||
|
||||
if err != nil {
|
||||
|
|
2
vcs.go
2
vcs.go
|
@ -47,7 +47,7 @@ func createDevelDB(config *settings.Configuration, dbExecutor db.Executor) error
|
|||
len(toSkipSlice), len(bases), text.Cyan(strings.Join(toSkipSlice, ", "))))
|
||||
}
|
||||
|
||||
if _, errA := download.AURPKGBUILDRepos(config.Runtime.CmdRunner,
|
||||
if _, errA := download.AURPKGBUILDRepos(
|
||||
config.Runtime.CmdBuilder, targets, config.AURURL, config.BuildDir, false); errA != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue