From e6edc7c336a031fa7b7f047b81b83fe2171c0f24 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Wed, 17 Jul 2024 14:59:57 -0400 Subject: [PATCH] Move text editor determination to cli package --- src/cli/init.go | 5 ++++- src/cli/initUNIX.go | 19 +++++++++++++++++++ src/cli/initWIN.go | 10 ++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/cli/initUNIX.go create mode 100644 src/cli/initWIN.go diff --git a/src/cli/init.go b/src/cli/init.go index 96680c9..88e4ef2 100644 --- a/src/cli/init.go +++ b/src/cli/init.go @@ -27,7 +27,10 @@ func TempInitCli() { } // textEditor - textEditor := input("Text editor (leave blank for $EDITOR, falls back to \"" + backend.FallbackEditor + "\"):") + textEditor := input("Text editor (leave blank for $EDITOR, falls back to \"" + fallbackEditor + "\"):") + if textEditor == "" { + textEditor = textEditorFallback() + } // SSH info configSSH := inputBinary("Configure SSH settings (for synchronization)?") diff --git a/src/cli/initUNIX.go b/src/cli/initUNIX.go new file mode 100644 index 0000000..1c63fb5 --- /dev/null +++ b/src/cli/initUNIX.go @@ -0,0 +1,19 @@ +//go:build !windows + +package cli + +import ( + "os" +) + +const fallbackEditor = "vi" // vi is pre-installed on most UNIX systems + +// textEditorFallback returns the value of the $EDITOR environment variable, or FallbackEditor if it is not set +func textEditorFallback() string { + // ensure textEditor is set + textEditor := os.Getenv("EDITOR") + if textEditor == "" { + textEditor = fallbackEditor + } + return textEditor +} diff --git a/src/cli/initWIN.go b/src/cli/initWIN.go new file mode 100644 index 0000000..746789c --- /dev/null +++ b/src/cli/initWIN.go @@ -0,0 +1,10 @@ +//go:build windows + +package cli + +const fallbackEditor = "nvim" // since there is no pre-installed CLI editor on Windows, default to the most popular one + +// textEditorFallback returns FallbackEditor +func textEditorFallback() string { + return fallbackEditor +}