def project_environment(project): app = get_application() eggstorage = app.getComponent(IEggStorage) version, eggfile = eggstorage.get(project) if eggfile: prefix = '%s-%s-' % (project, version) fd, eggpath = tempfile.mkstemp(prefix=prefix, suffix='.egg') lf = os.fdopen(fd, 'wb') shutil.copyfileobj(eggfile, lf) lf.close() activate_egg(eggpath) else: eggpath = None try: assert 'scrapy.conf' not in sys.modules, "Scrapy settings already loaded" yield finally: if eggpath: os.remove(eggpath)
def project_environment(project): eggversion = os.environ.get('SCRAPY_EGG_VERSION', None) config = Config() eggstorage_path = config.get('eggstorage', 'scrapyd.eggstorage.FilesystemEggStorage') eggstorage_cls = load_object(eggstorage_path) eggstorage = eggstorage_cls(config) version, eggfile = eggstorage.get(project, eggversion) if eggfile: prefix = '%s-%s-' % (project, version) fd, eggpath = tempfile.mkstemp(prefix=prefix, suffix='.egg') lf = os.fdopen(fd, 'wb') shutil.copyfileobj(eggfile, lf) lf.close() activate_egg(eggpath) else: eggpath = None try: assert 'scrapy.conf' not in sys.modules, "Scrapy settings already loaded" yield finally: if eggpath: os.remove(eggpath)
import os from scrapyd.eggutils import activate_egg eggpath = os.environ.get('SCRAPY_EGGFILE') if eggpath: activate_egg(eggpath) from scrapy.cmdline import execute execute()