Usar SCons para inicializar y actualizar los submodules de Git

Usamos submodules SCons y Git para organizar y build una stack de software. Tenemos varios desarrolladores de aplicaciones que usan nuestra stack para build sus aplicaciones en la parte superior. Con el fin de minimizar la fricción del uso de nuestra stack, ¿cuál es la mejor forma de utilizar SCons para verificar si los submodules están inicializados y actualizados y, posteriormente, actualizarlos recursivamente?

El objective es hacer que el command scons haga todo el trabajo.

Mi enfoque actual actual es:

 from subprocess import call call(["git", "submodule", "update", "--init", "--recursive"]) 

Las partes relevantes que se requieren para realizar una actualización recursiva en todos los submodules. Esto es útil para simplificar el caso de uso pnetworkingeterminado, clonar el repository y ejecutar scons

 from subprocess import call AddOption( '--git', type = 'string', nargs = 1, action = 'store', help = 'use --git=no-sub-update to disable the submodule update') ## Update the git submodules --------------------------------------------------- if GetOption('git') != 'no-sub-update': call(["git", "submodule", "update", "--init", "--recursive"])