refactor(kiauh): move create_folders to BaseInstance
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user