""" Check that there are no database migration files which have not been committed. """ import subprocess import sys print("Checking for unstaged migration files...") cmd = ['git', 'ls-files', '--exclude-standard', '--others'] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = proc.communicate() migrations = [] for line in str(out.decode()).split('\n'): if '/migrations/' in line: migrations.append(line) if len(migrations) == 0: sys.exit(0) print("There are {n} unstaged migration files:".format(n=len(migrations))) for m in migrations: print(" - {m}".format(m=m)) sys.exit(len(migrations))