[Fai-commit] r6668 - trunk/lib
Thomas Lange
lange at alioth.debian.org
Tue Oct 4 14:59:49 UTC 2011
Author: lange
Date: 2011-10-04 14:59:49 +0000 (Tue, 04 Oct 2011)
New Revision: 6668
Modified:
trunk/lib/subroutines
Log:
use associative array hclasses for subroutine ifclass, needs bash > 4
Modified: trunk/lib/subroutines
===================================================================
--- trunk/lib/subroutines 2011-09-16 08:44:13 UTC (rev 6667)
+++ trunk/lib/subroutines 2011-10-04 14:59:49 UTC (rev 6668)
@@ -79,12 +79,17 @@
# check one single class
[ "$debug" ] && echo "Test if class $1 is in $classes" >&2
# test if a class is defined
- local cl
- local ret=1
+ local ret
- for cl in $classes; do
- [ x$cl = x$1 ] && ret=0 && break
- done
+ if [ "${#hclasses[@]}" = 0 ]; then
+ echo "ifclass: WARNING. Associative array hclasses is empty." >&2
+ fi
+
+ if [ X${hclasses[$1]} = X1 ]; then
+ ret=0
+ else
+ ret=1
+ fi
[ "$debug" ] && echo "ifclass returns $ret" >&2
return $ret
}
@@ -399,6 +404,9 @@
cfclasses=$(echo $classes)
cfclasses=${cfclasses// /.}
[ "$debug" ] && echo "cfclasses: $cfclasses"
+ # define a bash hash with all class names. Without this, ifclass does not work
+ declare -A hclasses
+ for c in $classes; do hclasses[$c]=1;done
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
_defvar() {
More information about the Fai-commit
mailing list