refactor(kiauh): move create_folders to BaseInstance

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2023-12-03 23:08:41 +01:00
parent bfb10c742b
commit e35e44a76a
2 changed files with 26 additions and 13 deletions

View File

@@ -14,6 +14,7 @@ from pathlib import Path
from typing import List, Union, Optional, Type, TypeVar
from kiauh.utils.constants import SYSTEMD, CURRENT_USER
from kiauh.utils.system_utils import create_directory
B = TypeVar(name="B", bound="BaseInstance", covariant=True)
@@ -37,6 +38,7 @@ class BaseInstance(ABC):
self._log_dir = f"{self.data_dir}/logs"
self._comms_dir = f"{self.data_dir}/comms"
self._sysd_dir = f"{self.data_dir}/systemd"
self._gcodes_dir = f"{self.data_dir}/gcodes"
@property
def instance_type(self) -> Type["BaseInstance"]:
@@ -110,6 +112,14 @@ class BaseInstance(ABC):
def sysd_dir(self, value: str):
self._sysd_dir = value
@property
def gcodes_dir(self):
return self._gcodes_dir
@gcodes_dir.setter
def gcodes_dir(self, value: str):
self._gcodes_dir = value
@abstractmethod
def create(self) -> None:
raise NotImplementedError("Subclasses must implement the create method")
@@ -118,6 +128,21 @@ class BaseInstance(ABC):
def delete(self, del_remnants: bool) -> None:
raise NotImplementedError("Subclasses must implement the delete method")
def create_folders(self, add_dirs: List[str] = None) -> None:
dirs = [
self.data_dir,
self.cfg_dir,
self.log_dir,
self.comms_dir,
self.sysd_dir,
]
if add_dirs:
dirs.extend(add_dirs)
for _dir in dirs:
create_directory(Path(_dir))
def get_service_file_name(self, extension: bool = False) -> str:
name = f"{self.__class__.__name__.lower()}"
if self.suffix is not None:

View File

@@ -19,7 +19,6 @@ from kiauh.core.instance_manager.base_instance import BaseInstance
from kiauh.modules.klipper import KLIPPER_DIR, KLIPPER_ENV_DIR
from kiauh.utils.constants import SYSTEMD
from kiauh.utils.logger import Logger
from kiauh.utils.system_utils import create_directory
# noinspection PyMethodMayBeStatic
@@ -47,7 +46,7 @@ class Klipper(BaseInstance):
env_file_target = os.path.abspath(f"{self.sysd_dir}/klipper.env")
try:
self.create_folder_structure()
self.create_folders()
self.write_service_file(
service_template_path, service_file_target, env_file_target
)
@@ -79,17 +78,6 @@ class Klipper(BaseInstance):
if del_remnants:
self._delete_klipper_remnants()
def create_folder_structure(self) -> None:
dirs = [
self.data_dir,
self.cfg_dir,
self.log_dir,
self.comms_dir,
self.sysd_dir,
]
for _dir in dirs:
create_directory(Path(_dir))
def write_service_file(
self, service_template_path: str, service_file_target: str, env_file_target: str
):