69 lines
2.4 KiB
TypeScript
69 lines
2.4 KiB
TypeScript
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,
|
|
};
|
|
}
|