flavours icon indicating copy to clipboard operation
flavours copied to clipboard

Add configuration to execute processed templates

Open risen opened this issue 3 years ago • 3 comments

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:

  • set the executable bit on the generated script
  • execute it
  • maybe clean up afterwards

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.

risen avatar Apr 16 '21 01:04 risen

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?

Misterio77 avatar Apr 19 '21 12:04 Misterio77

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?

RichardBronosky avatar May 27 '21 11:05 RichardBronosky

@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:

  • Add a template compatible with the config (it's very very simple)
  • Add shellcolord $$ & to your shell init file (or shellcolord $fish_pid & if you use fish)
  • Set up flavours to replace colors at .config/shellcolord.conf, with shellcolor apply as hook.
  • Done!

Misterio77 avatar May 22 '22 21:05 Misterio77