import os import platform import shutil import sys def get_resource_path(filename): application_path = "resources" return os.path.join(application_path, filename) def get_tor_paths(): if platform.system() != "Darwin" and platform.machine().lower() in [ "aarch64", "arm64", ]: if shutil.which("tor"): return "tor" else: print( "Detected ARM system and tor is not installed or added to PATH. " "Please, consider reading documentation and installing application " "properly" ) sys.exit(1) else: from ..onion.tor_downloader import download_tor if platform.system() in ["Linux", "Darwin"]: tor_path = os.path.join(build_data_dir(), "tor/tor") elif platform.system() == "Windows": tor_path = os.path.join(build_data_dir(), "tor/tor.exe") else: raise Exception("Platform not supported") if not os.path.isfile(tor_path): download_tor(dist=build_data_dir()) return tor_path def build_data_dir(): dragonion_data_dir = "data" os.makedirs(dragonion_data_dir, exist_ok=True) return dragonion_data_dir def build_tmp_dir(): tmp_dir = os.path.join(build_data_dir(), "tmp") os.makedirs(tmp_dir, exist_ok=True) return tmp_dir def build_persistent_dir(): persistent_dir = os.path.join(build_data_dir(), "persistent") os.makedirs(persistent_dir, exist_ok=True) return persistent_dir def build_tor_data_dir(): tor_dir = os.path.join(build_data_dir(), "tor_data") os.makedirs(tor_dir, exist_ok=True) return tor_dir