Add module filtering to install.sh/main

This commit is contained in:
Rezart Qelibari
2022-01-28 18:37:45 +01:00
parent eee681bae9
commit a33958a1fb
4 changed files with 67 additions and 1 deletions

View File

@@ -15,10 +15,44 @@ function autoloadZShLib() {
autoload -Uz "${funcNames[@]}"
}
function getFilteredModules() {
if [ "${#module}" -eq 0 ]; then
echo "${allModules[@]}"
else
local modulesToKeep=()
for mod in "${allModules[@]}"; do
local foundAtIndex="${module[(Ie)${mod}]}"
if [ "${inverse}" != 'true' -a "${foundAtIndex}" -gt 0 ]; then
modulesToKeep+=("${mod}")
elif [ "${inverse}" = 'true' -a "${foundAtIndex}" -eq 0 ]; then
modulesToKeep+=("${mod}")
fi
done
echo "${modulesToKeep[@]}"
fi
}
function main() {
eval "`docopts -f -V - -h - : "$@" <<- USAGE
Usage: $0 [options] [<module>...]
Install all included modules. If any <module> arg is given, install only those
modules.
Options:
-i, --inverse Exclude the given <module> instead.
----
$0 0.1.0
Copyright (C) 2022 Rezart Qelibari, Astzweig GmbH & Co. KG
License EUPL-1.2. There is NO WARRANTY, to the extent permitted by law.
USAGE`"
local allModules=()
local modulesToInstall=(`getFilteredModules`)
ensureDocopts
autoloadZShLib
hio debug "Current working dir is: `pwd`"
}
main
if [[ "${ZSH_EVAL_CONTEXT}" == toplevel ]]; then
main
fi