import path from "path"; import type { User } from "../types"; import type { BUN_SQLITE_WGUI_USERS } from "@/db/types/db"; type Params = { user?: BUN_SQLITE_WGUI_USERS | User; }; export default function grabDirNames(params?: Params) { const DIRNAME = __dirname; const ROOT_DIR = DIRNAME.includes(`/.bunext`) ? process.cwd() : path.resolve(__dirname, "../.."); const DATA_DIR = process.env.DATA_DIR || path.join(ROOT_DIR, ".data"); const MEDIA_RELATIVE_DIR = "media"; const MEDIA_DIR = path.join(DATA_DIR, MEDIA_RELATIVE_DIR); const USER_MEDIA_PUBLIC_DIR = params?.user?.id ? path.join(MEDIA_DIR, String(params.user.id), "public") : undefined; const USER_MEDIA_PUBLIC_RELATIVE_DIR = params?.user?.id ? path.join(MEDIA_RELATIVE_DIR, String(params.user.id), "public") : undefined; const USER_MEDIA_PRIVATE_DIR = params?.user?.id ? path.join(MEDIA_DIR, String(params.user.id), "private") : undefined; const USER_MEDIA_PRIVATE_RELATIVE_DIR = params?.user?.id ? path.join(MEDIA_RELATIVE_DIR, String(params.user.id), "private") : undefined; const WGUI_LIB_DIR = `/var/lib/wgui`; const WGUI_LIB_IP_TABLES_DIR = path.join(WGUI_LIB_DIR, `iptables`); const WGUI_LIB_KEYS_DIR = path.join(WGUI_LIB_DIR, `keys`); const WGUI_LIB_CLIENTS_CONFIGS_DIR = path.join(WGUI_LIB_DIR, `clients`); const WGUI_LIB_HOSTS_CONFIGS_DIR = path.join(WGUI_LIB_DIR, `hosts`); const WGUI_LIB_SCRIPTS_DIR = path.join(WGUI_LIB_DIR, `scripts`); const WGUI_WG_QUICK_SYSTEMD_SCRIPT = path.join( WGUI_LIB_SCRIPTS_DIR, `wg-quick-systemd.sh`, ); const WIREGUARD_PRIVATE_KEY_FILE_NAME = `private.key`; const WIREGUARD_PUBLIC_KEY_FILE_NAME = `public.key`; const WIREGUARD_CLIENT_CONFIG_FILE_NAME = `wg.conf`; return { ROOT_DIR, MEDIA_DIR, USER_MEDIA_PUBLIC_DIR, USER_MEDIA_PRIVATE_DIR, DATA_DIR, USER_MEDIA_PUBLIC_RELATIVE_DIR, USER_MEDIA_PRIVATE_RELATIVE_DIR, WGUI_LIB_DIR, WGUI_LIB_IP_TABLES_DIR, WGUI_LIB_KEYS_DIR, WGUI_LIB_CLIENTS_CONFIGS_DIR, WGUI_LIB_HOSTS_CONFIGS_DIR, WGUI_LIB_SCRIPTS_DIR, WGUI_WG_QUICK_SYSTEMD_SCRIPT, WIREGUARD_PRIVATE_KEY_FILE_NAME, WIREGUARD_PUBLIC_KEY_FILE_NAME, WIREGUARD_CLIENT_CONFIG_FILE_NAME, }; }