Source code for oi_cli2.utils.configFolder
import os
# recursive search folder_name in dirpath and it's parent path
[docs]class ConfigFolder(object):
def __init__(self, folder_name: str):
self.folder_name = folder_name
[docs] def get_root_folder(self):
abs_path = os.path.abspath("./")
while True:
test_dir_path = os.path.join(abs_path, self.folder_name)
if os.path.isdir(test_dir_path):
return abs_path
parent_path = os.path.abspath(os.path.join(abs_path, os.pardir))
# Root folder's parent = Root folder
if parent_path == abs_path:
return None
abs_path = parent_path
[docs] def get_config_file_path(self, file_path: str):
abs_folder = self.get_root_folder()
if abs_folder is None:
raise Exception('Not a oi folder, please run `oi init` first')
return os.path.join(abs_folder, self.folder_name, file_path)
[docs] def get_file_path(self, file_path: str):
abs_folder = self.get_root_folder()
if abs_folder is None:
raise Exception('Not a oi folder, please run `oi init` first')
return os.path.join(abs_folder, file_path)