feat: добавила команду remove для удаления пакетов
This commit is contained in:
@@ -65,5 +65,30 @@ class PackageManager:
|
||||
|
||||
return True
|
||||
|
||||
def remove(self, package_name: str, force: bool = False) -> bool:
|
||||
"""Удаляет пакет"""
|
||||
print_step(f"Поиск пакета {package_name}...")
|
||||
|
||||
if not self.db.is_installed(package_name):
|
||||
print_error(f"Пакет {package_name} не установлен")
|
||||
return False
|
||||
|
||||
pkg = self.db.get_package(package_name)
|
||||
|
||||
print_step(f"Удаление {pkg.full_name()}...")
|
||||
|
||||
# Удаляем файлы
|
||||
for file_info in pkg.files:
|
||||
dst = os.path.join(self.root, file_info["destination"].lstrip("/"))
|
||||
if os.path.exists(dst):
|
||||
os.remove(dst)
|
||||
print_step(f" Удалён: {dst}")
|
||||
|
||||
# Удаляем из базы данных
|
||||
self.db.remove_package(package_name)
|
||||
|
||||
print_success(f"Пакет {package_name} удалён")
|
||||
return True
|
||||
|
||||
def list_installed(self) -> List[Package]:
|
||||
return list(self.db.installed.values())
|
||||
Reference in New Issue
Block a user