diff --git a/doc/yay.8 b/doc/yay.8 index 7e55a745..b37e9c45 100644 --- a/doc/yay.8 +++ b/doc/yay.8 @@ -174,8 +174,8 @@ the AUR cache when deciding if Yay should skip builds. .TP .B \-\-editor -Editor to use when editing PKGBUILDs. If this is not set the \fBEDITOR\fR -environment variable will be checked, followed by \fBVISUAL\fR. If none of +Editor to use when editing PKGBUILDs. If this is not set the \fBVISUAL\fR +environment variable will be checked, followed by \fBEDITOR\fR. If none of these are set Yay will prompt the user for an editor. .TP diff --git a/install.go b/install.go index a176a369..9265921c 100644 --- a/install.go +++ b/install.go @@ -291,7 +291,7 @@ func install(ctx context.Context, cfg *settings.Configuration, return err } - if errEditMenu := menus.Edit(os.Stdout, cfg.EditMenu, pkgbuildDirs, + if errEditMenu := menus.Edit(os.Stdout, cfg.Runtime.Logger, cfg.EditMenu, pkgbuildDirs, cfg.Editor, cfg.EditorFlags, remoteNamesCache, srcinfos, settings.NoConfirm, cfg.AnswerEdit); errEditMenu != nil { if errors.As(errEditMenu, &settings.ErrUserAbort{}) { diff --git a/pkg/menus/edit_menu.go b/pkg/menus/edit_menu.go index 24fb2a3e..55265335 100644 --- a/pkg/menus/edit_menu.go +++ b/pkg/menus/edit_menu.go @@ -20,12 +20,12 @@ import ( ) // Editor returns the preferred system editor. -func editor(editorConfig, editorFlags string, noConfirm bool) (editor string, args []string) { +func editor(log *text.Logger, editorConfig, editorFlags string, noConfirm bool) (editor string, args []string) { switch { case editorConfig != "": editor, err := exec.LookPath(editorConfig) if err != nil { - fmt.Fprintln(os.Stderr, err) + log.Errorln(err) } else { return editor, strings.Fields(editorFlags) } @@ -35,7 +35,7 @@ func editor(editorConfig, editorFlags string, noConfirm bool) (editor string, ar if editorArgs := strings.Fields(os.Getenv("VISUAL")); len(editorArgs) != 0 { editor, err := exec.LookPath(editorArgs[0]) if err != nil { - fmt.Fprintln(os.Stderr, err) + log.Errorln(err) } else { return editor, editorArgs[1:] } @@ -46,7 +46,7 @@ func editor(editorConfig, editorFlags string, noConfirm bool) (editor string, ar if editorArgs := strings.Fields(os.Getenv("EDITOR")); len(editorArgs) != 0 { editor, err := exec.LookPath(editorArgs[0]) if err != nil { - fmt.Fprintln(os.Stderr, err) + log.Errorln(err) } else { return editor, editorArgs[1:] } @@ -54,16 +54,15 @@ func editor(editorConfig, editorFlags string, noConfirm bool) (editor string, ar fallthrough default: - fmt.Fprintln(os.Stderr) - text.Errorln(gotext.Get("%s is not set", text.Bold(text.Cyan("$EDITOR")))) - text.Warnln(gotext.Get("Add %s or %s to your environment variables", text.Bold(text.Cyan("$EDITOR")), text.Bold(text.Cyan("$VISUAL")))) + log.Errorln("\n", gotext.Get("%s is not set", text.Bold(text.Cyan("$EDITOR")))) + log.Warnln(gotext.Get("Add %s or %s to your environment variables", text.Bold(text.Cyan("$EDITOR")), text.Bold(text.Cyan("$VISUAL")))) for { - text.Infoln(gotext.Get("Edit PKGBUILD with?")) + log.Infoln(gotext.Get("Edit PKGBUILD with?")) editorInput, err := text.GetInput(os.Stdin, "", noConfirm) if err != nil { - fmt.Fprintln(os.Stderr, err) + log.Errorln(err) continue } @@ -74,7 +73,7 @@ func editor(editorConfig, editorFlags string, noConfirm bool) (editor string, ar editor, err := exec.LookPath(editorArgs[0]) if err != nil { - fmt.Fprintln(os.Stderr, err) + log.Errorln(err) continue } @@ -83,7 +82,7 @@ func editor(editorConfig, editorFlags string, noConfirm bool) (editor string, ar } } -func editPkgbuilds(pkgbuildDirs map[string]string, bases []string, editorConfig, +func editPkgbuilds(log *text.Logger, pkgbuildDirs map[string]string, bases []string, editorConfig, editorFlags string, srcinfos map[string]*gosrc.Srcinfo, noConfirm bool, ) error { pkgbuilds := make([]string, 0, len(bases)) @@ -102,7 +101,7 @@ func editPkgbuilds(pkgbuildDirs map[string]string, bases []string, editorConfig, } if len(pkgbuilds) > 0 { - editor, editorArgs := editor(editorConfig, editorFlags, noConfirm) + editor, editorArgs := editor(log, editorConfig, editorFlags, noConfirm) editorArgs = append(editorArgs, pkgbuilds...) editcmd := exec.Command(editor, editorArgs...) editcmd.Stdin, editcmd.Stdout, editcmd.Stderr = os.Stdin, os.Stdout, os.Stderr @@ -115,7 +114,7 @@ func editPkgbuilds(pkgbuildDirs map[string]string, bases []string, editorConfig, return nil } -func Edit(w io.Writer, editMenuOption bool, pkgbuildDirs map[string]string, editorConfig, +func Edit(w io.Writer, log *text.Logger, editMenuOption bool, pkgbuildDirs map[string]string, editorConfig, editorFlags string, installed mapset.Set[string], srcinfos map[string]*gosrc.Srcinfo, noConfirm bool, editDefaultAnswer string, ) error { @@ -134,7 +133,7 @@ func Edit(w io.Writer, editMenuOption bool, pkgbuildDirs map[string]string, edit return errMenu } - if errEdit := editPkgbuilds(pkgbuildDirs, toEdit, editorConfig, editorFlags, srcinfos, noConfirm); errEdit != nil { + if errEdit := editPkgbuilds(log, pkgbuildDirs, toEdit, editorConfig, editorFlags, srcinfos, noConfirm); errEdit != nil { return errEdit } @@ -147,7 +146,7 @@ func Edit(w io.Writer, editMenuOption bool, pkgbuildDirs map[string]string, edit return nil } -func EditFn(ctx context.Context, config *settings.Configuration, w io.Writer, +func EditFn(ctx context.Context, cfg *settings.Configuration, w io.Writer, pkgbuildDirsByBase map[string]string, ) error { if len(pkgbuildDirsByBase) == 0 { @@ -161,18 +160,18 @@ func EditFn(ctx context.Context, config *settings.Configuration, w io.Writer, toEdit, errMenu := selectionMenu(w, pkgbuildDirsByBase, bases, mapset.NewThreadUnsafeSet[string](), - gotext.Get("PKGBUILDs to edit?"), settings.NoConfirm, config.AnswerEdit, nil) + gotext.Get("PKGBUILDs to edit?"), settings.NoConfirm, cfg.AnswerEdit, nil) if errMenu != nil || len(toEdit) == 0 { return errMenu } // TOFIX: remove or use srcinfo data - if errEdit := editPkgbuilds(pkgbuildDirsByBase, - toEdit, config.Editor, config.EditorFlags, nil, settings.NoConfirm); errEdit != nil { + if errEdit := editPkgbuilds(cfg.Runtime.Logger, pkgbuildDirsByBase, + toEdit, cfg.Editor, cfg.EditorFlags, nil, settings.NoConfirm); errEdit != nil { return errEdit } - fmt.Println() + cfg.Runtime.Logger.Println() if !text.ContinueTask(os.Stdin, gotext.Get("Proceed with install?"), true, false) { return settings.ErrUserAbort{}