fix: Error when using EDITOR environment variable with arguments#44
Merged
caarlos0 merged 2 commits intocaarlos0:mainfrom Mar 6, 2022
stefan-fast:fix/editor-env-with-arguments
Merged
fix: Error when using EDITOR environment variable with arguments#44caarlos0 merged 2 commits intocaarlos0:mainfrom stefan-fast:fix/editor-env-with-arguments
caarlos0 merged 2 commits intocaarlos0:mainfrom
stefan-fast:fix/editor-env-with-arguments
Conversation
caarlos0
reviewed
Mar 5, 2022
internal/cmd/edit.go
Outdated
Comment on lines
+38
to
+46
|
|
||
| editorArgs := []string{tmp} | ||
| if strings.ContainsAny(editor, " ") { | ||
| editorParts := strings.Split(editor, " ") | ||
| editor = editorParts[0] | ||
| editorArgs = append(editorArgs, editorParts[1:]...) | ||
| } | ||
|
|
||
| edit := exec.Command(editor, editorArgs...) |
Owner
There was a problem hiding this comment.
I think we can make this a bit nicer:
editor := strings.Fields(os.Getenv("EDITOR"))
if len(editor) == 0 {
return fmt.Errorf("no $EDITOR set")
}
cmd := editor[0]
var args []string
if len(editor) > 1 {
args = append(args, editor[1:])
}
args = append(args, tmp)
edit := exec.Command(cmd, args)
// ...wdyt?
Contributor
Author
There was a problem hiding this comment.
Nice, I didn't know strings.Fields yet. Thanks for the suggestion, I'll update the PR in just a moment. I have to rename the variables though since cmd and args are the parameter names of the function already :)
Owner
|
thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello there!
First of all, thanks for this awesome little project :)
Description
This PR tries to fix the issue of using the
tt editcommand in combination with anEDITORenvironment variable that consists of a command with arguments.Issue
Example
I am using
EDITOR="code --wait"as my environment variable for starting Visual Studio Code. Currently, this gives the following output:Reason
The whole string
"code --wait"is passed toexec.Commandas the first argument. By documentation, only the command itself should be the first argument ofexec.Commandand any arguments of that command should follow as seperate arguments.Solution
If there are any spaces in the environment variable
EDITOR, the command and it's argument are split into two seperate arguments forexec.Command.In my testing both
and
worked fine with the proposed fix.