def process(config):
    env = Environment(root=join(config['databasePath'], 'harvester'))
    for repository in env.getRepositories():
        if not repository.active:
            continue
        dna = be(
            (Observable(),
                (Harvest(),
                    (SruUpload(
                        hostname=config['hostName'], 
                        portnumber=int(config['portNumber']), 
                        path=config['sru.updatePath'], 
                        apiKey=repository.apiKey),)
                    )
                )
            )
        list(compose(dna.all.process(repository=repository)))