mirror of
https://github.com/dw-0/kiauh.git
synced 2026-08-03 04:47:56 +05:00
refactor: replace remove_file with remove_with_sudo
This commit is contained in:
@@ -41,7 +41,7 @@ from core.simple_config_parser.simple_config_parser import (
|
||||
from core.types.color import Color
|
||||
from core.types.component_status import ComponentStatus
|
||||
from utils.common import get_install_status
|
||||
from utils.fs_utils import create_symlink, remove_file
|
||||
from utils.fs_utils import create_symlink, remove_with_sudo
|
||||
from utils.git_utils import (
|
||||
get_latest_remote_tag,
|
||||
get_latest_unstable_tag,
|
||||
@@ -353,7 +353,7 @@ def create_nginx_cfg(
|
||||
|
||||
source = NGINX_SITES_AVAILABLE.joinpath(cfg_name)
|
||||
target = NGINX_SITES_ENABLED.joinpath(cfg_name)
|
||||
remove_file(Path("/etc/nginx/sites-enabled/default"), True)
|
||||
remove_with_sudo(Path("/etc/nginx/sites-enabled/default"))
|
||||
generate_nginx_cfg_from_template(cfg_name, template_src=template_src, **kwargs)
|
||||
create_symlink(source, target, True)
|
||||
set_nginx_permissions()
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
# ======================================================================= #
|
||||
# Copyright (C) 2020 - 2026 Dominik Willner <dev.dw-0@proton.me> #
|
||||
# #
|
||||
# This file is part of KIAUH - Klipper Installation And Update Helper #
|
||||
# https://github.com/dw-0/kiauh #
|
||||
# #
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license #
|
||||
# ======================================================================= #
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import warnings
|
||||
from typing import Callable
|
||||
|
||||
|
||||
def deprecated(info: str = "", replaced_by: Callable | None = None) -> Callable:
|
||||
def decorator(func) -> Callable:
|
||||
def wrapper(*args, **kwargs):
|
||||
msg = f"{info}{replaced_by.__name__ if replaced_by else ''}"
|
||||
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)
|
||||
return func(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
|
||||
return decorator
|
||||
@@ -16,7 +16,7 @@ from core.logger import DialogType, Logger
|
||||
from extensions.base_extension import BaseExtension
|
||||
from utils.common import check_install_dependencies
|
||||
from utils.fs_utils import (
|
||||
remove_file,
|
||||
remove_with_sudo,
|
||||
)
|
||||
from utils.git_utils import git_clone_wrapper, git_pull_wrapper
|
||||
from utils.input_utils import get_number_input
|
||||
@@ -91,8 +91,12 @@ class PrettyGcodeExtension(BaseExtension):
|
||||
# remove pgc dir
|
||||
shutil.rmtree(PGC_DIR)
|
||||
# remove nginx config
|
||||
remove_file(NGINX_SITES_AVAILABLE.joinpath(PGC_CONF), True)
|
||||
remove_file(NGINX_SITES_ENABLED.joinpath(PGC_CONF), True)
|
||||
remove_with_sudo(
|
||||
[
|
||||
NGINX_SITES_AVAILABLE.joinpath(PGC_CONF),
|
||||
NGINX_SITES_ENABLED.joinpath(PGC_CONF),
|
||||
]
|
||||
)
|
||||
# restart nginx
|
||||
cmd_sysctl_service("nginx", "restart")
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ from extensions.telegram_bot.moonraker_telegram_bot import (
|
||||
)
|
||||
from utils.common import check_install_dependencies
|
||||
from utils.config_utils import add_config_section, remove_config_section
|
||||
from utils.fs_utils import remove_file
|
||||
from utils.fs_utils import remove_with_sudo
|
||||
from utils.git_utils import git_clone_wrapper, git_pull_wrapper
|
||||
from utils.input_utils import get_confirm
|
||||
from utils.instance_utils import get_instances
|
||||
@@ -227,4 +227,4 @@ class TelegramBotExtension(BaseExtension):
|
||||
|
||||
for log in all_logfiles:
|
||||
Logger.print_status(f"Remove '{log}'")
|
||||
remove_file(log)
|
||||
remove_with_sudo(log)
|
||||
|
||||
@@ -20,7 +20,6 @@ from typing import List
|
||||
from zipfile import ZipFile
|
||||
|
||||
from core import backends
|
||||
from core.decorators import deprecated
|
||||
from core.logger import Logger
|
||||
|
||||
# Delegate to the shared backends module so tests can substitute
|
||||
@@ -110,17 +109,6 @@ def remove_with_sudo(files: Path | List[Path]) -> bool:
|
||||
return len(_removed) > 0
|
||||
|
||||
|
||||
@deprecated(info="Use remove_with_sudo instead", replaced_by=remove_with_sudo)
|
||||
def remove_file(file_path: Path, sudo=False) -> None:
|
||||
try:
|
||||
cmd = f"{'sudo ' if sudo else ''}rm -f {file_path}"
|
||||
run(cmd, stderr=PIPE, check=True, shell=True)
|
||||
except CalledProcessError as e:
|
||||
log = f"Cannot remove file {file_path}: {e.stderr.decode()}"
|
||||
Logger.print_error(log)
|
||||
raise
|
||||
|
||||
|
||||
def run_remove_routines(file: Path) -> bool:
|
||||
try:
|
||||
if not backends.filesystem.is_symlink(file) and not backends.filesystem.exists(file):
|
||||
|
||||
@@ -20,7 +20,6 @@ from utils.fs_utils import (
|
||||
create_folders,
|
||||
create_symlink,
|
||||
get_data_dir,
|
||||
remove_file,
|
||||
remove_with_sudo,
|
||||
run_remove_routines,
|
||||
unzip,
|
||||
@@ -147,22 +146,6 @@ class TestRemoveWithSudo:
|
||||
]
|
||||
|
||||
|
||||
class TestRemoveFile:
|
||||
def test_calls_shell_rm(self, monkeypatch) -> None:
|
||||
runs: List[Any] = []
|
||||
|
||||
def fake_run(cmd: str, **kwargs: Any) -> Any:
|
||||
runs.append((cmd, kwargs.get("shell")))
|
||||
return None
|
||||
|
||||
monkeypatch.setattr("utils.fs_utils.run", fake_run)
|
||||
|
||||
with pytest.warns(DeprecationWarning):
|
||||
remove_file(Path("/some/file"), sudo=True)
|
||||
|
||||
assert runs == [(f"sudo rm -f {Path('/some/file')}", True)]
|
||||
|
||||
|
||||
class TestRunRemoveRoutines:
|
||||
def test_returns_false_for_missing(self, tmp_path: Path) -> None:
|
||||
assert run_remove_routines(tmp_path / "missing") is False
|
||||
|
||||
Reference in New Issue
Block a user