onara
This commit is contained in:
+33
-7
@@ -39,20 +39,42 @@ const storage = process.env.STORAGE_DIR;
|
||||
|
||||
const resolvePath = (defaultRel) => {
|
||||
const local = path.resolve(path.join(base, defaultRel));
|
||||
let target = local;
|
||||
if (storage) {
|
||||
const absStorage = path.resolve(storage);
|
||||
if (defaultRel.startsWith('public/')) {
|
||||
const sub = defaultRel.replace('public/', '');
|
||||
if (sub === 's/emojis' || sub === 's/koepfe' || sub === 's/fonts') {
|
||||
const storagePath = path.join(absStorage, sub.split('/').pop());
|
||||
if (fs.existsSync(storagePath)) return path.resolve(storagePath);
|
||||
return local;
|
||||
if (fs.existsSync(storagePath)) target = path.resolve(storagePath);
|
||||
else target = local;
|
||||
} else {
|
||||
target = path.resolve(path.join(absStorage, sub));
|
||||
}
|
||||
return path.resolve(path.join(absStorage, sub));
|
||||
} else {
|
||||
target = path.resolve(path.join(absStorage, defaultRel));
|
||||
}
|
||||
return path.resolve(path.join(absStorage, defaultRel));
|
||||
}
|
||||
return local;
|
||||
try {
|
||||
if (fs.existsSync(target)) {
|
||||
return fs.realpathSync(target);
|
||||
}
|
||||
const parent = path.dirname(target);
|
||||
if (fs.existsSync(parent)) {
|
||||
return path.join(fs.realpathSync(parent), path.basename(target));
|
||||
}
|
||||
} catch (_) {}
|
||||
return target;
|
||||
};
|
||||
|
||||
const resolveImportPath = () => {
|
||||
const p = storage ? path.resolve(path.join(path.resolve(storage), 'import')) : path.resolve(path.join(base, 'f0ckm-data/import'));
|
||||
try {
|
||||
if (fs.existsSync(p)) return fs.realpathSync(p);
|
||||
const parent = path.dirname(p);
|
||||
if (fs.existsSync(parent)) return path.join(fs.realpathSync(parent), path.basename(p));
|
||||
} catch (_) {}
|
||||
return p;
|
||||
};
|
||||
|
||||
config.paths = {
|
||||
@@ -61,7 +83,11 @@ config.paths = {
|
||||
c: resolvePath('public/c'),
|
||||
t: resolvePath('public/t'),
|
||||
ca: resolvePath('public/ca'),
|
||||
s: path.join(base, 'public/s'),
|
||||
s: (() => {
|
||||
const sPath = path.join(base, 'public/s');
|
||||
try { if (fs.existsSync(sPath)) return fs.realpathSync(sPath); } catch (_) {}
|
||||
return sPath;
|
||||
})(),
|
||||
emojis: resolvePath('public/s/emojis'),
|
||||
koepfe: resolvePath('public/s/koepfe'),
|
||||
fonts: resolvePath('public/s/fonts'),
|
||||
@@ -71,7 +97,7 @@ config.paths = {
|
||||
deleted: resolvePath('deleted'),
|
||||
logs: resolvePath('logs'),
|
||||
tmp: resolvePath('tmp'),
|
||||
import: storage ? path.resolve(path.join(path.resolve(storage), 'import')) : path.resolve(path.join(base, 'f0ckm-data/import'))
|
||||
import: resolveImportPath()
|
||||
};
|
||||
|
||||
export default config;
|
||||
|
||||
Reference in New Issue
Block a user