#!/usr/env/python import os import os.path from subprocess import call def update(apps_dir): """Updates a collection of Subversion/Git/Mercurial/Bazaar working copies, including subdirectories""" for app_name in os.listdir(apps_dir): app_dir = os.path.abspath(os.path.join(apps_dir, app_name)) if os.path.isdir(app_dir): git_path = os.path.join(app_dir, '.git') svn_path = os.path.join(app_dir, '.svn') hg_path = os.path.join(app_dir, '.hg') bzr_path = os.path.join(app_dir, '.bzr') if os.path.lexists(svn_path): print "Updating svn %s" % app_dir os.chdir(app_dir) call(['svn', 'update']) elif os.path.lexists(git_path): print "Updating git %s" % app_dir os.chdir(app_dir) call(['git', 'pull']) elif os.path.lexists(hg_path): print "Updating hg %s" % app_dir os.chdir(app_dir) call(['hg', 'pull', '-u']) elif os.path.lexists(bzr_path): print "Updating bzr %s" % app_dir os.chdir(app_dir) call(['bzr', 'update']) else: update(app_dir) else: continue return None if __name__ == "__main__": update(os.path.abspath('.'))