Created
February 19, 2019 13:18
-
-
Save fschulze/60c0671fbde2230347897f45c6584e4d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from devpi_common.types import ensure_unicode | |
from devpi_server.log import threadlog as log | |
from devpi_server.main import get_pluginmanager | |
from devpi_server.main import _main | |
from devpi_web.indexing import preprocess_project | |
from devpi_web.main import get_indexer | |
import sys | |
import time | |
def main(): | |
pm = get_pluginmanager() | |
pm.register(Plugin()) | |
_main(pm, sys.argv) | |
def iter_projects(xom, user, index): | |
timestamp = time.time() | |
stage = xom.model.getstage(ensure_unicode(user), ensure_unicode(index)) | |
names = stage.list_projects_perstage() | |
for count, name in enumerate(names, start=1): | |
name = ensure_unicode(name) | |
current_time = time.time() | |
if current_time - timestamp > 3: | |
log.debug("currently search-indexed %s", count) | |
timestamp = current_time | |
yield preprocess_project(stage, name) | |
class Plugin: | |
def devpiserver_cmdline_run(self, xom): | |
user = 'root' | |
index = 'pypi' | |
log.info("indexing %s/%s" % (user, index)) | |
indexer = get_indexer(xom.config) | |
indexer.update_projects(iter_projects(xom, user, index), clear=True) | |
log.info("finished indexing") | |
return 0 | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment