summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDieter Plaetinck <dieter@plaetinck.be>2008-11-10 13:54:39 +0100
committerDieter Plaetinck <dieter@plaetinck.be>2008-11-10 13:54:39 +0100
commit2b0d36b249a7d3c0daefef18468c052b969c61fd (patch)
tree5e2010520285b857ba74c4b2b594ba757c0dc687 /src
parent1bc04b995a0ad2ae1bcaf1c8147842bbec2f5d45 (diff)
temporary woraround for broken array indirection
Diffstat (limited to 'src')
-rwxr-xr-xsrc/fifa.sh16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/fifa.sh b/src/fifa.sh
index c8bb712..1664b3c 100755
--- a/src/fifa.sh
+++ b/src/fifa.sh
@@ -131,15 +131,21 @@ execute ()
log "******* Executing phase $2"
exit_var=exit_$object
read $exit_var <<< 0
- debug "\$1: $1, \$2: $2, \$object: $object, \$exit_$object: $exit_object"
- debug "declare: `declare | grep -e "^${object}=" | cut -d"=" -f 2-`"
-
+ # TODO: for some reason the hack below does not work (tested in virtualbox), even though it really should. Someday I must get indirect array variables working and clean this up...
+ # debug "\$1: $1, \$2: $2, \$object: $object, \$exit_$object: $exit_object"
+ # debug "declare: `declare | grep -e "^${object}=" | cut -d"=" -f 2-`"
# props to jedinerd at #bash for this hack.
- eval phase=$(declare | grep -e "^${object}=" | cut -d"=" -f 2-)
- debug "\$phase: $phase - ${phase[@]}"
+ # eval phase=$(declare | grep -e "^${object}=" | cut -d"=" -f 2-)
+ #debug "\$phase: $phase - ${phase[@]}"
+ unset phase
+ [ "$2" = preparation ] && phase=( "${phase_preparation[@]}" )
+ [ "$2" = basics ] && phase=( "${phase_basics[@]}" )
+ [ "$2" = system ] && phase=( "${phase_system[@]}" )
+ [ "$2" = finish ] && phase=( "${phase_finish[@]}" )
# worker_str contains the name of the worker and optionally any arguments
for worker_str in "${phase[@]}"
do
+ debug "Loop iteration. \$worker_str: $worker_str"
execute worker $worker_str || read $exit_var <<< $? # assign last failing exit code to exit_phase_<phasename>, if any.
done
ret=${!exit_var}