1
0
Fork 0

Fix config checker

This commit is contained in:
Chocobozzz 2017-08-26 09:17:20 +02:00
parent c6720f0bf5
commit 3482688cce
3 changed files with 26 additions and 22 deletions

View file

@ -23,28 +23,29 @@ process.title = 'peertube'
// Create our main app
const app = express()
// ----------- Database -----------
// Do not use barrels because we don't want to load all modules here (we need to initialize database first)
import { logger } from './server/helpers/logger'
import { API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants'
// Initialize database and models
import { database as db } from './server/initializers/database'
db.init(false).then(() => onDatabaseInitDone())
// ----------- Checker -----------
// ----------- Core checker -----------
import { checkMissedConfig, checkFFmpeg, checkConfig } from './server/initializers/checker'
const missed = checkMissedConfig()
if (missed.length !== 0) {
throw new Error('Miss some configurations keys : ' + missed)
throw new Error('Your configuration files miss keys: ' + missed)
}
checkFFmpeg()
import { API_VERSION, CONFIG, STATIC_PATHS } from './server/initializers/constants'
checkFFmpeg(CONFIG)
const errorMessage = checkConfig()
if (errorMessage !== null) {
throw new Error(errorMessage)
}
// ----------- Database -----------
// Do not use barrels because we don't want to load all modules here (we need to initialize database first)
import { logger } from './server/helpers/logger'
// Initialize database and models
import { database as db } from './server/initializers/database'
db.init(false).then(() => onDatabaseInitDone())
// ----------- PeerTube modules -----------
import { migrate, installApplication } from './server/initializers'
import { JobScheduler, activateSchedulers, VideosPreviewCache } from './server/lib'

View file

@ -1,8 +1,8 @@
import * as config from 'config'
import { database as db } from './database'
import { CONFIG } from './constants'
import { promisify0 } from '../helpers/core-utils'
import { OAuthClientModel } from '../models/oauth/oauth-client-interface'
import { UserModel } from '../models/user/user-interface'
// Some checks on configuration files
function checkConfig () {
@ -21,8 +21,8 @@ function checkMissedConfig () {
const required = [ 'listen.port',
'webserver.https', 'webserver.hostname', 'webserver.port',
'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password',
'storage.certs', 'storage.videos', 'storage.logs', 'storage.thumbnails', 'storage.previews',
'admin.email', 'signup.enabled', 'transcoding.enabled', 'transcoding.threads'
'storage.certs', 'storage.videos', 'storage.logs', 'storage.thumbnails', 'storage.previews', 'storage.torrents', 'storage.cache',
'cache.previews.size', 'admin.email', 'signup.enabled', 'signup.limit', 'transcoding.enabled', 'transcoding.threads'
]
const miss: string[] = []
@ -36,7 +36,8 @@ function checkMissedConfig () {
}
// Check the available codecs
function checkFFmpeg () {
// We get CONFIG by param to not import it in this file (import orders)
function checkFFmpeg (CONFIG: { TRANSCODING: { ENABLED: boolean } }) {
const Ffmpeg = require('fluent-ffmpeg')
const getAvailableCodecsPromise = promisify0(Ffmpeg.getAvailableCodecs)
@ -57,14 +58,16 @@ function checkFFmpeg () {
})
}
function clientsExist () {
return db.OAuthClient.countTotal().then(totalClients => {
// We get db by param to not import it in this file (import orders)
function clientsExist (OAuthClient: OAuthClientModel) {
return OAuthClient.countTotal().then(totalClients => {
return totalClients !== 0
})
}
function usersExist () {
return db.User.countTotal().then(totalUsers => {
// We get db by param to not import it in this file (import orders)
function usersExist (User: UserModel) {
return User.countTotal().then(totalUsers => {
return totalUsers !== 0
})
}

View file

@ -57,7 +57,7 @@ function createDirectoriesIfNotExist () {
}
function createOAuthClientIfNotExist () {
return clientsExist().then(exist => {
return clientsExist(db.OAuthClient).then(exist => {
// Nothing to do, clients already exist
if (exist === true) return undefined
@ -82,7 +82,7 @@ function createOAuthClientIfNotExist () {
}
function createOAuthAdminIfNotExist () {
return usersExist().then(exist => {
return usersExist(db.User).then(exist => {
// Nothing to do, users already exist
if (exist === true) return undefined