From 88e71a3fe501bad66da9ddee94ab2e3411a14bb7 Mon Sep 17 00:00:00 2001 From: Rezart Qelibari Date: Fri, 4 Feb 2022 14:58:17 +0100 Subject: [PATCH] Use outer array in filterModules --- install.sh | 16 ++++++++-------- spec/filterModules_spec.sh | 26 ++++++++++++++++++++++++++ spec/getFilteredModules_spec.sh | 26 -------------------------- 3 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 spec/filterModules_spec.sh delete mode 100644 spec/getFilteredModules_spec.sh diff --git a/install.sh b/install.sh index eaa189e..2db5ee8 100755 --- a/install.sh +++ b/install.sh @@ -15,20 +15,20 @@ function autoloadZShLib() { autoload -Uz "${funcNames[@]}" } -function getFilteredModules() { +function filterModules() { if [ "${#module}" -eq 0 ]; then - echo "${allModules[@]}" + modulesToInstall=("${allModules[@]}") else - local mod modulesToKeep=() + local mod + modulesToInstall=() for mod in "${allModules[@]}"; do local foundAtIndex="${module[(Ie)${mod}]}" if [ "${inverse}" != 'true' -a "${foundAtIndex}" -gt 0 ]; then - modulesToKeep+=("${mod}") + modulesToInstall+=("${mod}") elif [ "${inverse}" = 'true' -a "${foundAtIndex}" -eq 0 ]; then - modulesToKeep+=("${mod}") + modulesToInstall+=("${mod}") fi done - echo "${modulesToKeep[@]}" fi } @@ -170,8 +170,8 @@ function main() { 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=("${(f)$(find ./modules -type f -perm +u=x -maxdepth 1 2> /dev/null | awk -F/ '{print $NF }' | sort -n)}") - local modulesToInstall=(`getFilteredModules`) + local allModules=("${(f)$(find ./modules -type f -perm +u=x -maxdepth 1 2> /dev/null | awk -F/ '{print $NF }' | sort -n)}") modulesToInstall + filterModules ensureDocopts autoloadZShLib askNecessaryQuestions diff --git a/spec/filterModules_spec.sh b/spec/filterModules_spec.sh new file mode 100644 index 0000000..e22332e --- /dev/null +++ b/spec/filterModules_spec.sh @@ -0,0 +1,26 @@ +Describe 'filterModules' + Include ./install.sh + It 'returns all modules if no module arg is given' + allModules=(module1 module2 'module3 with space') modulesToInstall=() + When call filterModules + The variable modulesToInstall should eq 'module1 module2 module3 with space' + The status should be success + End + + It 'returns only mentioned modules' + allModules=(module1 module2 'module3 with space') modulesToInstall=() + module=('module3 with space' module2) + When call filterModules + The variable modulesToInstall should eq 'module2 module3 with space' + The status should be success + End + + It 'returns only not mentioned modules if inversed' + allModules=(module1 module2 'module3 with space') modulesToInstall=() + module=('module3 with space' module1) + inverse=true + When call filterModules + The variable modulesToInstall should eq 'module2' + The status should be success + End +End diff --git a/spec/getFilteredModules_spec.sh b/spec/getFilteredModules_spec.sh deleted file mode 100644 index d825128..0000000 --- a/spec/getFilteredModules_spec.sh +++ /dev/null @@ -1,26 +0,0 @@ -Describe 'getFilteredModules' - Include ./install.sh - It 'returns all modules if no module arg is given' - allModules=(module1 module2) - When call getFilteredModules - The output should eq 'module1 module2' - The status should be success - End - - It 'returns only mentioned modules' - allModules=(module1 module2 module3) - module=(module3 module2) - When call getFilteredModules - The output should eq 'module2 module3' - The status should be success - End - - It 'returns only not mentioned modules if inversed' - allModules=(module1 module2 module3) - module=(module3 module1) - inverse=true - When call getFilteredModules - The output should eq 'module2' - The status should be success - End -End