50 lines
824 B
Bash
50 lines
824 B
Bash
|
# 0000
|
||
|
# 0001
|
||
|
# 0010
|
||
|
# 0011
|
||
|
# 0100
|
||
|
# 0101
|
||
|
# 0111
|
||
|
# 1000
|
||
|
# 1001
|
||
|
# 1010
|
||
|
# 1011
|
||
|
# 1100
|
||
|
# 1101
|
||
|
# 1111
|
||
|
|
||
|
RUN_MASK=31
|
||
|
LAST_BIT_POS=5
|
||
|
|
||
|
RUN_MASK_HIGHEST=0
|
||
|
|
||
|
for ((i=$LAST_BIT_POS; i>0; i--)); do
|
||
|
b=$((2**$((i-1))))
|
||
|
if [ $((b & $RUN_MASK)) -gt 0 ]; then
|
||
|
RUN_MASK_HIGHEST=$i
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
echo $RUN_MASK_HIGHEST
|
||
|
|
||
|
|
||
|
|
||
|
bit=1
|
||
|
for ((i=0; i<$LAST_BIT_POS; i++)); do
|
||
|
runlevel="RUNLEVEL $bit"
|
||
|
if [[ $((RUN_MASK & $bit)) -eq ${bit} ]]; then
|
||
|
s="$runlevel - ${description[$i]}"
|
||
|
>&2 echo -e "\033[;96mRUNNING $s\033[;39m"
|
||
|
# source $((i+1))_${files[$i]}.sh
|
||
|
if [ $? -ne "0" ]; then
|
||
|
>&2 echo -e "\033[;31mFAILED $s\033[;39m"
|
||
|
exit 1;
|
||
|
fi
|
||
|
>&2 echo -e "\033[;32mSUCCEEDED $s\033[;39m"
|
||
|
>&2 echo -e "\033[;96mConfiguration state after $runlevel execution\033[;39m"
|
||
|
# confini-dump --schema-dir ./config
|
||
|
fi
|
||
|
bit=$((bit*2))
|
||
|
done
|