#!/bin/bash
python manage.py shell<<EOF
from os import listdir, getcwd, path
import sys

basedir = getcwd()
sys.path.append(basedir)
import settings

datadir = path.join(basedir, settings.GITDJANGO_DIRNAME)
datadir = path.abspath(datadir)

queue = []
queued = set()
for app in listdir(datadir):
    if app[0] == '.':
        continue
    modname = 'gitcms.' + app
    module = __import__(modname,{},{},fromlist=['load'])
    dependencies = getattr(module.load, 'dependencies', [])
    dependencies = set(dependencies)
    loaddir = getattr(module.load, 'loaddir', None)
    if loaddir is not None:
        queue.append( (loaddir, app) )
        queued.add(app)
        for dep in dependencies.intersection(queued):
            idx = 0
            while queue[idx][1] != dep:
                idx += 1
            dep = queue[idx]
            del queue[idx]
            queue.append(dep)
    else:
        import warnings
        warnings.warn("Don't know how to import '%s'" % app)


for loaddir,app in reversed(queue):
    loaddir(path.join(datadir, app), clear=True)


EOF
