pkgxdev / libpkgx

`import`… but with pkging powers
https://npmjs.com/libpkgx
Apache License 2.0
60 stars 11 forks source link

Support `post-install`? #69

Open sanchitram1 opened 1 year ago

sanchitram1 commented 1 year ago

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.

jhheider commented 1 year ago

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.

sanchitram1 commented 1 year ago

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?

jhheider commented 1 year ago

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.