Fix config checker
authorChocobozzz <florian.bigard@gmail.com>
Sat, 26 Aug 2017 07:17:20 +0000 (09:17 +0200)
committerChocobozzz <florian.bigard@gmail.com>
Sat, 26 Aug 2017 07:17:20 +0000 (09:17 +0200)
server.ts
server/initializers/checker.ts
server/initializers/installer.ts

index 9c74ddb694024a77b9332824760e05205feb64c8..80bf118c010aa582e9f2c02e2036df7226051b12 100644 (file)
--- a/server.ts
+++ b/server.ts
@@ -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'
index e4ca26f9c683d7a1117906bc26667348d16839d3..97606ef311068b7156c0b486d00d94f327eb98bc 100644 (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
   })
 }
index 26e92be0b8d40129f5160acd70c5193e453f37a8..43b5adfedf40cdb99d64fda89ee886eaa12e611a 100644 (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