aboutsummaryrefslogtreecommitdiff
path: root/tools/cru-py/crupest/path.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/cru-py/crupest/path.py')
-rw-r--r--tools/cru-py/crupest/path.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/tools/cru-py/crupest/path.py b/tools/cru-py/crupest/path.py
new file mode 100644
index 0000000..0cfcfb8
--- /dev/null
+++ b/tools/cru-py/crupest/path.py
@@ -0,0 +1,57 @@
+import os
+import os.path
+
+script_dir = os.path.relpath(os.path.dirname(__file__))
+project_dir = os.path.normpath(os.path.join(script_dir, "../../../"))
+project_abs_path = os.path.abspath(project_dir)
+template_dir = os.path.join(project_dir, "template")
+nginx_template_dir = os.path.join(template_dir, "nginx")
+data_dir = os.path.join(project_dir, "data")
+tool_dir = os.path.join(project_dir, "tools")
+tmp_dir = os.path.join(project_dir, "tmp")
+backup_dir = os.path.join(project_dir, "backup")
+config_file_path = os.path.join(data_dir, "config")
+nginx_config_dir = os.path.join(project_dir, "nginx-config")
+log_dir = os.path.join(project_dir, "log")
+
+
+def ensure_file(path: str, /, must_exist: bool = True) -> bool:
+ if must_exist and not os.path.exists(path):
+ raise Exception(f"File {path} does not exist!")
+ if not os.path.exists(path):
+ return False
+ if not os.path.isfile(path):
+ raise Exception(f"{path} is not a file!")
+ return True
+
+
+def ensure_dir(path: str, /, must_exist: bool = True) -> bool:
+ if must_exist and not os.path.exists(path):
+ raise Exception(f"Directory {path} does not exist!")
+ if not os.path.exists(path):
+ return False
+ if not os.path.isdir(path):
+ raise Exception(f"{path} is not a directory!")
+ return True
+
+
+class Paths:
+ script_dir = os.path.relpath(os.path.dirname(__file__))
+ project_dir = os.path.normpath(os.path.join(script_dir, "../../"))
+ project_abs_path = os.path.abspath(project_dir)
+ data_dir = os.path.join(project_dir, "data")
+ config_file_path = os.path.join(data_dir, "config")
+ template_dir = os.path.join(project_dir, "template")
+ tool_dir = os.path.join(project_dir, "tool")
+ tmp_dir = os.path.join(project_dir, "tmp")
+ backup_dir = os.path.join(project_dir, "backup")
+ log_dir = os.path.join(project_dir, "log")
+ template2_dir = os.path.join(project_dir, "template2")
+ nginx2_template_dir = os.path.join(template2_dir, "nginx")
+ generated_dir = os.path.join(project_dir, "generated")
+ nginx_generated_dir = os.path.join(generated_dir, "nginx")
+
+
+def create_dir_if_not_exists(path: str) -> None:
+ if not ensure_dir(path, must_exist=False):
+ os.mkdir(path)