X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=server%2Finitializers%2Finstaller.ts;h=cd2c942fd1dc2851136989782f72b0421138004c;hb=0e0c745b62b2f18e228328e8c4f95b17e54f7a5e;hp=1926c40dd6dfeaba9ae48054032c73ed3af44a4e;hpb=c1e791bad0b079af67398f6407221e6dcbb573dd;p=oweals%2Fpeertube.git diff --git a/server/initializers/installer.ts b/server/initializers/installer.ts index 1926c40dd..cd2c942fd 100644 --- a/server/initializers/installer.ts +++ b/server/initializers/installer.ts @@ -1,23 +1,32 @@ import * as passwordGenerator from 'password-generator' import { UserRole } from '../../shared' -import { mkdirpPromise, rimrafPromise } from '../helpers/core-utils' import { logger } from '../helpers/logger' -import { createApplicationActor, createUserAccountAndChannel } from '../lib/user' +import { createApplicationActor, createUserAccountAndChannelAndPlaylist } from '../lib/user' import { UserModel } from '../models/account/user' import { ApplicationModel } from '../models/application/application' import { OAuthClientModel } from '../models/oauth/oauth-client' -import { applicationExist, clientsExist, usersExist } from './checker' -import { CACHE, CONFIG, LAST_MIGRATION_VERSION } from './constants' +import { applicationExist, clientsExist, usersExist } from './checker-after-init' +import { CACHE, CONFIG, HLS_STREAMING_PLAYLIST_DIRECTORY, LAST_MIGRATION_VERSION } from './constants' import { sequelizeTypescript } from './database' +import { remove, ensureDir } from 'fs-extra' async function installApplication () { try { - await sequelizeTypescript.sync() - await removeCacheDirectories() - await createDirectoriesIfNotExist() - await createApplicationIfNotExist() - await createOAuthClientIfNotExist() - await createOAuthAdminIfNotExist() + await Promise.all([ + // Database related + sequelizeTypescript.sync() + .then(() => { + return Promise.all([ + createApplicationIfNotExist(), + createOAuthClientIfNotExist(), + createOAuthAdminIfNotExist() + ]) + }), + + // Directories + removeCacheAndTmpDirectories() + .then(() => createDirectoriesIfNotExist()) + ]) } catch (err) { logger.error('Cannot install application.', { err }) process.exit(-1) @@ -32,7 +41,7 @@ export { // --------------------------------------------------------------------------- -function removeCacheDirectories () { +function removeCacheAndTmpDirectories () { const cacheDirectories = Object.keys(CACHE) .map(k => CACHE[k].DIRECTORY) @@ -41,9 +50,11 @@ function removeCacheDirectories () { // Cache directories for (const key of Object.keys(cacheDirectories)) { const dir = cacheDirectories[key] - tasks.push(rimrafPromise(dir)) + tasks.push(remove(dir)) } + tasks.push(remove(CONFIG.STORAGE.TMP_DIR)) + return Promise.all(tasks) } @@ -52,18 +63,21 @@ function createDirectoriesIfNotExist () { const cacheDirectories = Object.keys(CACHE) .map(k => CACHE[k].DIRECTORY) - const tasks: Promise[] = [] + const tasks: Promise[] = [] for (const key of Object.keys(storage)) { const dir = storage[key] - tasks.push(mkdirpPromise(dir)) + tasks.push(ensureDir(dir)) } // Cache directories for (const key of Object.keys(cacheDirectories)) { const dir = cacheDirectories[key] - tasks.push(mkdirpPromise(dir)) + tasks.push(ensureDir(dir)) } + // Playlist directories + tasks.push(ensureDir(HLS_STREAMING_PLAYLIST_DIRECTORY)) + return Promise.all(tasks) } @@ -122,12 +136,14 @@ async function createOAuthAdminIfNotExist () { email, password, role, + verified: true, nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY, - videoQuota: -1 + videoQuota: -1, + videoQuotaDaily: -1 } const user = new UserModel(userData) - await createUserAccountAndChannel(user, validatePassword) + await createUserAccountAndChannelAndPlaylist(user, validatePassword) logger.info('Username: ' + username) logger.info('User password: ' + password) }