|
@@ -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{}
|