aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--server/helpers/core-utils.ts9
-rw-r--r--server/initializers/constants.ts16
2 files changed, 16 insertions, 9 deletions
diff --git a/server/helpers/core-utils.ts b/server/helpers/core-utils.ts
index 4981bb4ec..77547c528 100644
--- a/server/helpers/core-utils.ts
+++ b/server/helpers/core-utils.ts
@@ -8,7 +8,7 @@ import * as createTorrent from 'create-torrent'
8import { pseudoRandomBytes } from 'crypto' 8import { pseudoRandomBytes } from 'crypto'
9import { readdir, readFile, rename, stat, Stats, unlink, writeFile } from 'fs' 9import { readdir, readFile, rename, stat, Stats, unlink, writeFile } from 'fs'
10import * as mkdirp from 'mkdirp' 10import * as mkdirp from 'mkdirp'
11import { join } from 'path' 11import { isAbsolute, join } from 'path'
12import * as pem from 'pem' 12import * as pem from 'pem'
13import * as rimraf from 'rimraf' 13import * as rimraf from 'rimraf'
14import { URL } from 'url' 14import { URL } from 'url'
@@ -70,6 +70,12 @@ function pageToStartAndCount (page: number, itemsPerPage: number) {
70 return { start, count: itemsPerPage } 70 return { start, count: itemsPerPage }
71} 71}
72 72
73function buildPath (path: string) {
74 if (isAbsolute(path)) return path
75
76 return join(root(), path)
77}
78
73function promisify0<A> (func: (cb: (err: any, result: A) => void) => void): () => Promise<A> { 79function promisify0<A> (func: (cb: (err: any, result: A) => void) => void): () => Promise<A> {
74 return function promisified (): Promise<A> { 80 return function promisified (): Promise<A> {
75 return new Promise<A>((resolve: (arg: A) => void, reject: (err: any) => void) => { 81 return new Promise<A>((resolve: (arg: A) => void, reject: (err: any) => void) => {
@@ -136,6 +142,7 @@ export {
136 pageToStartAndCount, 142 pageToStartAndCount,
137 sanitizeUrl, 143 sanitizeUrl,
138 sanitizeHost, 144 sanitizeHost,
145 buildPath,
139 146
140 promisify0, 147 promisify0,
141 promisify1, 148 promisify1,
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index 2c64efe1f..745e50168 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -5,7 +5,7 @@ import { ActivityPubActorType } from '../../shared/models/activitypub'
5import { FollowState } from '../../shared/models/actors' 5import { FollowState } from '../../shared/models/actors'
6import { VideoPrivacy } from '../../shared/models/videos' 6import { VideoPrivacy } from '../../shared/models/videos'
7// Do not use barrels, remain constants as independent as possible 7// Do not use barrels, remain constants as independent as possible
8import { isTestInstance, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils' 8import { buildPath, isTestInstance, root, sanitizeHost, sanitizeUrl } from '../helpers/core-utils'
9 9
10// --------------------------------------------------------------------------- 10// ---------------------------------------------------------------------------
11 11
@@ -93,13 +93,13 @@ const CONFIG = {
93 PASSWORD: config.get<string>('database.password') 93 PASSWORD: config.get<string>('database.password')
94 }, 94 },
95 STORAGE: { 95 STORAGE: {
96 AVATARS_DIR: join(root(), config.get<string>('storage.avatars')), 96 AVATARS_DIR: buildPath(config.get<string>('storage.avatars')),
97 LOG_DIR: join(root(), config.get<string>('storage.logs')), 97 LOG_DIR: buildPath(config.get<string>('storage.logs')),
98 VIDEOS_DIR: join(root(), config.get<string>('storage.videos')), 98 VIDEOS_DIR: buildPath(config.get<string>('storage.videos')),
99 THUMBNAILS_DIR: join(root(), config.get<string>('storage.thumbnails')), 99 THUMBNAILS_DIR: buildPath(config.get<string>('storage.thumbnails')),
100 PREVIEWS_DIR: join(root(), config.get<string>('storage.previews')), 100 PREVIEWS_DIR: buildPath(config.get<string>('storage.previews')),
101 TORRENTS_DIR: join(root(), config.get<string>('storage.torrents')), 101 TORRENTS_DIR: buildPath(config.get<string>('storage.torrents')),
102 CACHE_DIR: join(root(), config.get<string>('storage.cache')) 102 CACHE_DIR: buildPath(config.get<string>('storage.cache'))
103 }, 103 },
104 WEBSERVER: { 104 WEBSERVER: {
105 SCHEME: config.get<boolean>('webserver.https') === true ? 'https' : 'http', 105 SCHEME: config.get<boolean>('webserver.https') === true ? 'https' : 'http',