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 typing import List, Union, Optional, Type, TypeVar
|
||||||
|
|
||||||
from kiauh.utils.constants import SYSTEMD, CURRENT_USER
|
from kiauh.utils.constants import SYSTEMD, CURRENT_USER
|
||||||
|
from kiauh.utils.system_utils import create_directory
|
||||||
|
|
||||||
B = TypeVar(name="B", bound="BaseInstance", covariant=True)
|
B = TypeVar(name="B", bound="BaseInstance", covariant=True)
|
||||||
|
|
||||||
@@ -37,6 +38,7 @@ class BaseInstance(ABC):
|
|||||||
self._log_dir = f"{self.data_dir}/logs"
|
self._log_dir = f"{self.data_dir}/logs"
|
||||||
self._comms_dir = f"{self.data_dir}/comms"
|
self._comms_dir = f"{self.data_dir}/comms"
|
||||||
self._sysd_dir = f"{self.data_dir}/systemd"
|
self._sysd_dir = f"{self.data_dir}/systemd"
|
||||||
|
self._gcodes_dir = f"{self.data_dir}/gcodes"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def instance_type(self) -> Type["BaseInstance"]:
|
def instance_type(self) -> Type["BaseInstance"]:
|
||||||
@@ -110,6 +112,14 @@ class BaseInstance(ABC):
|
|||||||
def sysd_dir(self, value: str):
|
def sysd_dir(self, value: str):
|
||||||
self._sysd_dir = value
|
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
|
@abstractmethod
|
||||||
def create(self) -> None:
|
def create(self) -> None:
|
||||||
raise NotImplementedError("Subclasses must implement the create method")
|
raise NotImplementedError("Subclasses must implement the create method")
|
||||||
@@ -118,6 +128,21 @@ class BaseInstance(ABC):
|
|||||||
def delete(self, del_remnants: bool) -> None:
|
def delete(self, del_remnants: bool) -> None:
|
||||||
raise NotImplementedError("Subclasses must implement the delete method")
|
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:
|
def get_service_file_name(self, extension: bool = False) -> str:
|
||||||
name = f"{self.__class__.__name__.lower()}"
|
name = f"{self.__class__.__name__.lower()}"
|
||||||
if self.suffix is not None:
|
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.modules.klipper import KLIPPER_DIR, KLIPPER_ENV_DIR
|
||||||
from kiauh.utils.constants import SYSTEMD
|
from kiauh.utils.constants import SYSTEMD
|
||||||
from kiauh.utils.logger import Logger
|
from kiauh.utils.logger import Logger
|
||||||
from kiauh.utils.system_utils import create_directory
|
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyMethodMayBeStatic
|
# noinspection PyMethodMayBeStatic
|
||||||
@@ -47,7 +46,7 @@ class Klipper(BaseInstance):
|
|||||||
env_file_target = os.path.abspath(f"{self.sysd_dir}/klipper.env")
|
env_file_target = os.path.abspath(f"{self.sysd_dir}/klipper.env")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.create_folder_structure()
|
self.create_folders()
|
||||||
self.write_service_file(
|
self.write_service_file(
|
||||||
service_template_path, service_file_target, env_file_target
|
service_template_path, service_file_target, env_file_target
|
||||||
)
|
)
|
||||||
@@ -79,17 +78,6 @@ class Klipper(BaseInstance):
|
|||||||
if del_remnants:
|
if del_remnants:
|
||||||
self._delete_klipper_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(
|
def write_service_file(
|
||||||
self, service_template_path: str, service_file_target: str, env_file_target: str
|
self, service_template_path: str, service_file_target: str, env_file_target: str
|
||||||
):
|
):
|
||||||
|
|||||||
Reference in New Issue
Block a user