Misterio77 / flavours

🎨💧 An easy to use base16 scheme manager that integrates with any workflow.
MIT License
506 stars 28 forks source link

Add configuration to execute processed templates #29

Open risen opened 3 years ago

risen commented 3 years ago

Hi!

Some templates generate a script to be executed. Unless there's a way I don't know of, I'm supposed to use the hook = … entry to:

Maybe there should be an easier way to do it: it could for instance create a tempfile(), execute it, and clean it up, making even the file = … entry optional.

Misterio77 commented 3 years ago

Hey!

I think this is a little too much of a niche to include a key for. But perhaps you could cut 2/3 of the steps with something like this:

Instead of using rewrite mode, use comments for replacing on your script, something along the lines of:

#!/usr/bin/env bash

some_commands

# Start Flavours
# Your script gets put here
# End Flavours

some_other_commands

Then set it as executable with chmod (flavours won't touch the permissions).

Then just set flavours config.toml to something like:

[[item]]
file = "~/bin/example.sh"
template = "example"
hook = "~/bin/example.sh"

Maybe this will work for you?

RichardBronosky commented 3 years ago

I think this is a little too much of a niche to include a key for. @Misterio77

Rather than open a new issue, I think this is the best place to address this. Is it possible to get the output of the hook to be shown on the tty where flavours apply is run? To be specific, lets consider https://github.com/chriskempson/base16-shell/blob/master/templates/default.mustache where the template will generate a shell script that, when ran, will output escape/control sequences that your shell should respond to. Running the script via hook will not affect your active shell.

  1. Can this be accomplished with flavours apply?
  2. If not, would you be open to satisfying this niche?
Misterio77 commented 2 years ago

@RichardBronosky, my bad for the (very) late reply, my github notifications were all over the place and I'm only now having some time and energy to go back to them.

If you're still interested in the issue you described: Flavours currently does not propagate any output from hooks. We could add a config option for it, yes.

But maybe this tiny program I made could be a better solution for your usecase?

Some quick steps on how to use it with flavours: