def require_clean_submodules(repo_root, submodules):
<EOL>for do_nothing in (<EOL>'<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>if do_nothing in sys.argv:<EOL><INDENT>return<EOL><DEDENT><DEDENT>status = _check_submodule_status(repo_root, submodules)<EOL>if status == "<STR_LIT>":<EOL><INDENT>print("<STR_LIT>")<EOL>_update_submodules(repo_root)<EOL><DEDENT>elif status == "<STR_LIT>":<EOL><INDENT>print(UNCLEAN_SUBMODULES_MSG)<EOL><DEDENT>
Check on git submodules before distutils can do anything
    Since distutils cannot be trusted to update the tree
    after everything has been set in motion,
    this is not a distutils command.