Currently, holoscripts get run by basically including this .install script in each package:
#!/bin/sh
post_install() {
holo apply
}
post_upgrade() {
holo apply
}
post_remove() {
holo apply
}
.install scripts are discouraged whenever possible and treated somewhat of a last resort. In this case, it is possible to use a pacman hook (e.g.: in /usr/share/libalpm/hooks) that runs holo apply when a new files are placed into /usr/share/holo/files/ (or updated, or removed). The hook can be provided by the holo package itself, and also allows non-holo packages to just slip in holoscripts and alike.
This would also ensure that holo apply one gets run once per transaction after packages are installed, rather than once per package.
The hook would be quite trivial, and is a bit more of a declarative (rather than imperative) approach. A vague (poorly tested) sample is something like:
[Trigger]
Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
Target = /usr/share/holo/files/*
[Action]
Description = Applying holoscripts
When = PostTransaction
Exec = /usr/bin/holo apply
I will try and make a PR with this, but would like to hear any thoughts or feedback you may have before further digging into this.
Currently,
holoscriptsget run by basically including this.installscript in each package:.installscripts are discouraged whenever possible and treated somewhat of a last resort. In this case, it is possible to use a pacman hook (e.g.: in/usr/share/libalpm/hooks) that runsholo applywhen a new files are placed into/usr/share/holo/files/(or updated, or removed). The hook can be provided by theholopackage itself, and also allows non-holo packages to just slip inholoscriptsand alike.This would also ensure that
holo applyone gets run once per transaction after packages are installed, rather than once per package.The hook would be quite trivial, and is a bit more of a declarative (rather than imperative) approach. A vague (poorly tested) sample is something like:
I will try and make a PR with this, but would like to hear any thoughts or feedback you may have before further digging into this.