libpkgx icon indicating copy to clipboard operation
libpkgx copied to clipboard

Support `post-install`?

Open sanchitram1 opened this issue 2 years ago • 3 comments

I encountered this issue while packaging zsh-syntax-highlighting (#2000) that requires something to be added to $HOME/.zshrc. Should we create a way to modify a user's system post-install? Certain packages definitely require it.

Context: Here's what I see for $HOME.

# Inside the package.yaml
$ echo $HOME 
'/Users/sanch/tea/pkgdev/pantry/builds/github.com\342\210\225zsh-users\342\210\225zsh-syntax-highlighting-0.7.1+darwin/xyz.tea.home'

# In zsh
$ echo $HOME
/Users/sanch

We could use something like {{home}} to refer to the user's home directory.

sanchitram1 avatar May 20 '23 11:05 sanchitram1

Hopefully we don't need post-install scripts, but realistically we will eventually (think setting up servers). The general solution, if provided, would be use environment variables via runtime.env.FOO: {{prefix}}/etc/whatever if zsh provides them.

jhheider avatar May 20 '23 21:05 jhheider

You can use ZDOTDIR to configure zsh to look in a different directory instead of HOME. But, it's blank by default, since .zshrc is in HOME.

What about find ~ -name .zshrc -print -quit to find and print the first result? Since it's looking in ~, it should find HOME first?

sanchitram1 avatar May 22 '23 02:05 sanchitram1

I mean, you can find a .zshrc, if one exists, on the build machine. I guess if you were just an awful person, this might work:

runtime:
  env:
    _FOO: $(echo "source {{prefix}}/etc/zsh_completion.zsh" >> ${ZDOTDIR:=~}/.zshrc)

but a) I think that violates the spirit of tea, and b) we'd probably want to reject it.

jhheider avatar May 22 '23 02:05 jhheider