X-Git-Url: https://git.cweiske.de/phorkie.git/blobdiff_plain/35764754559c893569625c115707eb3bf73d1cfd..256dda0773f9d540ab4b276949b4f98215261828:/scripts/index.php?ds=sidebyside diff --git a/scripts/index.php b/scripts/index.php index 0a2e26c..ea07e60 100644 --- a/scripts/index.php +++ b/scripts/index.php @@ -2,20 +2,7 @@ //index repositories in elasticsearch namespace phorkie; -set_include_path( - __DIR__ . '/../src/' - . PATH_SEPARATOR . get_include_path() -); -spl_autoload_register( - function ($class) { - $file = str_replace(array('\\', '_'), '/', $class) . '.php'; - $hdl = @fopen($file, 'r', true); - if ($hdl !== false) { - fclose($hdl); - require $file; - } - } -); +require_once __DIR__ . '/../src/phorkie/autoload.php'; require_once __DIR__ . '/../data/config.default.php'; if (file_exists(__DIR__ . '/../data/config.php')) { require_once __DIR__ . '/../data/config.php'; @@ -24,85 +11,27 @@ if ($GLOBALS['phorkie']['cfg']['setupcheck']) { SetupCheck::run(); } -//delete all repos -$r = new \HTTP_Request2( - $GLOBALS['phorkie']['cfg']['elasticsearch'] . 'repo/_query', - \HTTP_Request2::METHOD_DELETE -); -$r->setBody( - json_encode( - (object)array( - 'match_all' => (object)array() - ) - ) -); -$r->send(); -$r = new \HTTP_Request2( - $GLOBALS['phorkie']['cfg']['elasticsearch'] . 'file/_query', - \HTTP_Request2::METHOD_DELETE -); -$r->setBody( - json_encode( - (object)array( - 'match_all' => (object)array() - ) - ) -); -$r->send(); -//create mapping -$r = new \HTTP_Request2( - $GLOBALS['phorkie']['cfg']['elasticsearch'] . 'file/_mapping', - \HTTP_Request2::METHOD_PUT -); -$r->setBody( - json_encode( - (object)array( - 'file' => (object)array( - '_parent' => (object)array( - 'type' => 'repo' - ) - ) - ) - ) -); -$r->send(); +$db = new Database(); + +if ($db->prefix == '\phorkie\Database_Adapter_Null') { + echo "Error: No search adapter configured.\n"; + exit(1); +} +$idx = $db->getIndexer(); + +//create mapping +echo "Index reset\n"; +$db->getSetup()->reset(); -//FIXME: define schema $rs = new Repositories(); -foreach ($rs->getList(0, 10000) as $repo) { +list($repos, $count) = $rs->getList(0, 10000); +foreach ($repos as $repo) { echo 'Indexing ' . $repo->id . "\n"; - $r = new \HTTP_Request2( - $GLOBALS['phorkie']['cfg']['elasticsearch'] . 'repo/' . $repo->id, - \HTTP_Request2::METHOD_PUT - ); - $r->setBody( - json_encode( - (object)array( - 'id' => $repo->id, - 'description' => $repo->getDescription(), - ) - ) - ); - $res = $r->send(); - - foreach ($repo->getFiles() as $file) { - $r = new \HTTP_Request2( - $GLOBALS['phorkie']['cfg']['elasticsearch'] . 'file/?parent=' . $repo->id, - \HTTP_Request2::METHOD_POST - ); - $r->setBody( - json_encode( - (object)array( - 'name' => $file->getFilename(), - 'extension' => $file->getExt(), - 'content' => $file->isText() ? $file->getContent() : '', - ) - ) - ); - $r->send(); - } + $commits = $repo->getHistory(); + $first = count($commits)-1; + $idx->addRepo($repo, $commits[$first]->committerTime, $commits[0]->committerTime); } ?>