"""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))