Add module filtering to install.sh/main
This commit is contained in:
36
install.sh
36
install.sh
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user