# Script for checking which projects have unsubmitted modifications in them. # # Usage: # - recommended to add a alias/bat/sh for a shorter command # - running without parameters will check any existing known dE projects. # - can give projects names on command line, if only wish to check a sub-set # e.g., git-check.py delibs deqp import os import sys COMMANDS = ["pull", "push", "check"] ALL_REPOS = ["delibs", "deqp", "movies", "domeni", "demisc"] # Defaults. command = "check" repos = ALL_REPOS # Parse command line. numArgs = len(sys.argv) if (numArgs == 1): pass else: if (sys.argv[1] in COMMANDS): command = sys.argv[1] if (numArgs > 2): repos = sys.argv[2:] else: repos = sys.argv[1:] def findRepo(x): for repo in ALL_REPOS: if repo.startswith(x): return repo print "%s not a valid repository directory" % x sys.exit(1) repoDirs = [findRepo(x) for x in repos] # Find git base repo directory. oldDir = os.getcwd() baseDir = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), "../..")) foundAny = False # Execute the command. print "## Executing '%s' on repos: %s" % (command.upper(), ", ".join(repoDirs)) print "" for gitDir in repoDirs: subDir = os.path.join(baseDir, gitDir) if os.path.exists(subDir): foundAny = True print "***** Check directory '%s' *****" % subDir os.chdir(subDir) if command == "check": os.system("git status") os.system("git push --dry-run") elif command == "push": os.system("git push") elif command == "pull": os.system("git pull") else: assert False print "" if not foundAny: print "No subdirs found -- tried %s" % repoDirs print "Searching in '%s'" % baseDir os.chdir(oldDir)