If KISS_PATH=:: or even KISS_PATH=:/repo1:/repo2, the `IFS=:; set -- $KISS_PATH`
trick leaves some of $@ as empty strings. These cause git to print errors.
Instead, skip empty arguments.
Demonstration of bug:
$ cd
$ KISS_PATH=::: kiss u 2>&1 | sed '/Checking/q'
-> Updating repositories
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
fatal: not a git repository (or any of the parent directories): .git
-> Checking for new package versions
The git commands producing the errors are:
git -C "" rev-parse 'HEAD@{upstream}'
and when the argument to -C is empty, the current working directory is
unchanged. Therefore, if PWD happens to be inside a git tree, this
command could have unexpected effects: currently, if KISS_PATH contains
(an) extra colon(s), and PWD is in a git repo with an upstream, the repo
is updated irrespective of whether it is in KISS_PATH or a package repo.
This behaviour is also fixed by this commit.
Ctrl+C is now correctly blocked during installation and removal
and ordering of pkg_clean is maintained.
Two new hooks have been added, SIGINT and SIGEXIT. These run in
the corresponding signal handlers.
Fixes #280
This option defaults to '1' and controls the installation prompt
at the end of the build process. Setting this to '0' will disable
the installation of packages post-build.
Closes #265
This wraps the call in a subshell so the die() call does not exit
the script early. Error code is also forced back to 0 so the
existing clean up code runs.
Closes #260
Turns out that kiss extensions which call the package manager
inherit the parent _KISS_LVL value. This get incremented further
and the wrong cache clean path is taken on exit.
Closes #259
- No longer hides errors from strip commands. Some errors may now
appear, these are bugs and should be reported.
- The whitelist of paths included subdirectories themselves. This
has been changed to only glob for files.
- Each strip command is now printed to the screen.