77# ------------------------------------------------------------------------------
88
99# Modules
10- MODULES=$MODULES
10+ MODULES=
1111
1212# Resolve Python path
1313PYTHON=" $( which python2.7) "
@@ -358,6 +358,26 @@ function in_array() {
358358}
359359
360360function run_source_modules() {
361+ # preprocess version modules
362+ needed=($MODULES )
363+ while [ ${# needed[*]} -ne 0 ]; do
364+
365+ # pop module from the needed list
366+ module=${needed[0]}
367+ unset needed[0]
368+ needed=( ${needed[@]} )
369+
370+ # is a version is specified ?
371+ items=( ${module// ==/ } )
372+ module=${items[0]}
373+
6D3F
version=${items[1]}
374+ if [ ! -z " $version " ]; then
375+ info " Specific version detected for $module : $version "
376+ eval " VERSION_$module =$version "
377+ fi
378+ done
379+
380+
361381 needed=($MODULES )
362382 declare -a processed
363383
@@ -374,6 +394,11 @@ function run_source_modules() {
374394 unset needed[0]
375395 needed=( ${needed[@]} )
376396
397+ # split the version if exist
398+ items=( ${module// ==/ } )
399+ module=${items[0]}
400+ version=${items[1]}
401+
377402 # check if the module have already been declared
378403 in_array $module " ${processed[@]} "
379404 if [ $? -ne 255 ]; then
@@ -393,6 +418,13 @@ function run_source_modules() {
393418 fi
394419 source $RECIPES_PATH /$module /recipe.sh
395420
421+ # if a version has been specified by the user, the md5 will not
422+ # correspond at all. so deactivate it.
423+ if [ ! -z " $version " ]; then
424+ debug " Deactivate MD5 test for $module , due to specific version"
425+ eval " MD5_$module ="
426+ fi
427+
396428 # append current module deps to the needed
397429 deps=$( echo \$ " {DEPS_$module [@]}" )
398430 eval deps=($deps )
0 commit comments