aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/api/v1/fs.ts
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-20 20:55:34 +0000
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-08-20 20:55:34 +0000
commit001fc710d8b662080098d8d7dcba2c668bcb0587 (patch)
tree56dbb373e0fa9fa5eeb49cf2fc2c42c1e152f2cb /src/routes/api/v1/fs.ts
parent80d0342636056bc839517b64fd11708abea70237 (diff)
downloadcrunched-001fc710d8b662080098d8d7dcba2c668bcb0587.tar.gz
crunched-001fc710d8b662080098d8d7dcba2c668bcb0587.tar.bz2
crunched-001fc710d8b662080098d8d7dcba2c668bcb0587.tar.lz
crunched-001fc710d8b662080098d8d7dcba2c668bcb0587.zip

feat: do things

Diffstat (limited to 'src/routes/api/v1/fs.ts')
-rw-r--r--src/routes/api/v1/fs.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/routes/api/v1/fs.ts b/src/routes/api/v1/fs.ts
new file mode 100644
index 0000000..92714f3
--- /dev/null
+++ b/src/routes/api/v1/fs.ts
@@ -0,0 +1,20 @@
+import { LockSet } from '$lib/vendor/lock';
+import fs from 'node:fs/promises';
+import process from 'node:process';
+import path from 'node:path';
+
+const lockSet = new LockSet();
+const baseDataPath =
+ process.env.BASE_DATA_PATH ?? path.join(process.cwd(), 'data');
+const usersDir = path.join(baseDataPath, 'users');
+const disksDir = path.join(baseDataPath, 'disks');
+
+export const userExists = async (username: string) => {
+ const unlock = await lockSet.get(username).acquireRead();
+ try {
+ fs.open(path.join(baseDataPath, ''));
+ } catch (error) {
+ unlock();
+ throw error;
+ }
+};