Source code for spack.cmd.reindex

# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import shutil

import spack.database
import spack.store
from spack.llnl.util import tty

description = "rebuild Spack's package database"
section = "admin"
level = "long"


[docs] def reindex(parser, args): current_index = spack.store.STORE.db._index_path needs_backup = os.path.isfile(current_index) if needs_backup: backup = f"{current_index}.bkp" shutil.copy(current_index, backup) tty.msg("Created a backup copy of the DB at", backup) spack.store.STORE.reindex() extra = ["If you need to restore, replace it with the backup."] if needs_backup else [] tty.msg( f"The DB at {current_index} has been reindexed to v{spack.database._DB_VERSION}", *extra )