xbps-repo: made 'genindex' code run ~60% faster than before!
Rather than externalizing the package index plist file to storage every time a package is registered, only do it one time once all packages have been processed. Creating an index with 700 pkgs now takes 14s in a VM, where before it took 39s. As consequence of this, the 'add-pkgidx' target is no longer relevant or useful, remove it. --HG-- extra : convert_revision : xtraeme%40gmail.com-20091118053439-ct1chn4hdeir1pdo
This commit is contained in:
@ -49,10 +49,9 @@ usage(void)
|
||||
{
|
||||
printf("Usage: xbps-repo [options] [action] [arguments]\n\n"
|
||||
" Available actions:\n"
|
||||
" add, add-pkgidx, genindex, list, remove, search, show\n"
|
||||
" add, genindex, list, remove, search, show\n"
|
||||
" Actions with arguments:\n"
|
||||
" add\t\t<URI>\n"
|
||||
" add-pkgidx\t<repo> <binpkg>\n"
|
||||
" genindex\t<path>\n"
|
||||
" remove\t<URI>\n"
|
||||
" search\t<string>\n"
|
||||
@ -69,7 +68,6 @@ usage(void)
|
||||
" $ xbps-repo remove /path/to/directory\n"
|
||||
" $ xbps-repo search klibc\n"
|
||||
" $ xbps-repo show klibc\n"
|
||||
" $ xbps-repo add-pkgidx /pkgdir /pkgdir/noarch/foo.xbps\n"
|
||||
" $ xbps-repo genindex /pkgdir\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
@ -147,6 +145,7 @@ add_repository(const char *uri, bool remote)
|
||||
if (!sanitize_localpath(idxstr, uri))
|
||||
return errno;
|
||||
|
||||
printf("Fetching remote package index at %s...\n", uri);
|
||||
rv = xbps_sync_repository_pkg_index(idxstr);
|
||||
if (rv != 0)
|
||||
return rv;
|
||||
@ -301,15 +300,6 @@ main(int argc, char **argv)
|
||||
rv = xbps_repo_genindex(argv[1]);
|
||||
exit(rv);
|
||||
|
||||
} else if (strcasecmp(argv[0], "add-pkgidx") == 0) {
|
||||
/* Add a binary package into a package repository. */
|
||||
if (argc != 3)
|
||||
usage();
|
||||
|
||||
rv = xbps_repo_addpkg_index(argv[1], argv[2]);
|
||||
if (rv != 0)
|
||||
exit(rv);
|
||||
|
||||
} else if (strcasecmp(argv[0], "sync") == 0) {
|
||||
/* Syncs the pkg index file from a remote repo */
|
||||
if (argc != 2)
|
||||
|
Reference in New Issue
Block a user