def rename(self, current_version_id, new_version_id): if not self.version_exists(current_version_id, "custom"): raise Exception("Cannot rename: " + current_version_id + " does not exist") if self.version_exists(new_version_id, "custom"): raise Exception("Cannot rename: " + new_version_id + " already exists") old_id_paths = self.get_paths(current_version_id, "custom") new_id_paths = self.get_paths(new_version_id, "custom") FileTools.add_missing_dirs(new_id_paths["jar"]) for file_type in ["jar", "json"]: FileTools.move(old_id_paths[file_type], new_id_paths[file_type]) FileTools.delete_and_clean(str(old_id_paths["directory"])) index_listing = self.index[self._get_version_index(current_version_id, "custom")] index_listing["name"] = new_version_id self._flush_index()