feat: make snippet executors multiplatform #282
Merged
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.
Recently it was brought up in #271 (comment) that snippet code execution doesn't work in Windows because it used a bash script to run. This change addresses that and changes the way executors are defined entirely so that rather than being a bash script per language, they're defined in a
executors.yaml
file baked into thepresenterm
binary and can similarly be extended within the config file placed in~/.config/presenter/config.yaml
.This makes defining executors much simpler as you have a single file with all of them and you don't have to deal with tempdirs and whatnot. Every time a snippet is executed the following now happens:
${tempdir}/${filename}
wherefilename
is defined by the snippet execution config.cwd
. This means they don't need to deal with absolute paths or any other annoying detail.