]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/initializers/checker.ts
Add ability to configure log level
[github/Chocobozzz/PeerTube.git] / server / initializers / checker.ts
index 7007f2c0b2fa92abbfc9ff6025fa2612e574541d..35fab244cf6ca04a248a6b2c8d4db5764415423d 100644 (file)
@@ -1,7 +1,8 @@
 import * as config from 'config'
-
-import { database as db } from './database'
-import { CONFIG } from './constants'
+import { promisify0 } from '../helpers/core-utils'
+import { UserModel } from '../models/account/user'
+import { ApplicationModel } from '../models/application/application'
+import { OAuthClientModel } from '../models/oauth/oauth-client'
 
 // Some checks on configuration files
 function checkConfig () {
@@ -20,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.videos', 'storage.logs', 'storage.thumbnails', 'storage.previews', 'storage.torrents', 'storage.cache', 'log.level',
+    'cache.previews.size', 'admin.email', 'signup.enabled', 'signup.limit', 'transcoding.enabled', 'transcoding.threads', 'user.video_quota'
   ]
   const miss: string[] = []
 
@@ -35,42 +36,45 @@ function checkMissedConfig () {
 }
 
 // Check the available codecs
-function checkFFmpeg (callback: (err: Error) => void) {
+// We get CONFIG by param to not import it in this file (import orders)
+async function checkFFmpeg (CONFIG: { TRANSCODING: { ENABLED: boolean } }) {
   const Ffmpeg = require('fluent-ffmpeg')
+  const getAvailableCodecsPromise = promisify0(Ffmpeg.getAvailableCodecs)
+
+  const codecs = await getAvailableCodecsPromise()
+  if (CONFIG.TRANSCODING.ENABLED === false) return undefined
 
-  Ffmpeg.getAvailableCodecs(function (err, codecs) {
-    if (err) return callback(err)
-    if (CONFIG.TRANSCODING.ENABLED === false) return callback(null)
+  const canEncode = [ 'libx264' ]
+  for (const codec of canEncode) {
+    if (codecs[codec] === undefined) {
+      throw new Error('Unknown codec ' + codec + ' in FFmpeg.')
+    }
 
-    const canEncode = [ 'libx264' ]
-    canEncode.forEach(function (codec) {
-      if (codecs[codec] === undefined) {
-        return callback(new Error('Unknown codec ' + codec + ' in FFmpeg.'))
-      }
+    if (codecs[codec].canEncode !== true) {
+      throw new Error('Unavailable encode codec ' + codec + ' in FFmpeg')
+    }
+  }
+}
 
-      if (codecs[codec].canEncode !== true) {
-        return callback(new Error('Unavailable encode codec ' + codec + ' in FFmpeg'))
-      }
-    })
+// We get db by param to not import it in this file (import orders)
+async function clientsExist () {
+  const totalClients = await OAuthClientModel.countTotal()
 
-    return callback(null)
-  })
+  return totalClients !== 0
 }
 
-function clientsExist (callback: (err: Error, clientsExist?: boolean) => void) {
-  db.OAuthClient.countTotal(function (err, totalClients) {
-    if (err) return callback(err)
+// We get db by param to not import it in this file (import orders)
+async function usersExist () {
+  const totalUsers = await UserModel.countTotal()
 
-    return callback(null, totalClients !== 0)
-  })
+  return totalUsers !== 0
 }
 
-function usersExist (callback: (err: Error, usersExist?: boolean) => void) {
-  db.User.countTotal(function (err, totalUsers) {
-    if (err) return callback(err)
+// We get db by param to not import it in this file (import orders)
+async function applicationExist () {
+  const totalApplication = await ApplicationModel.countTotal()
 
-    return callback(null, totalUsers !== 0)
-  })
+  return totalApplication !== 0
 }
 
 // ---------------------------------------------------------------------------
@@ -80,5 +84,6 @@ export {
   checkFFmpeg,
   checkMissedConfig,
   clientsExist,
-  usersExist
+  usersExist,
+  applicationExist
 }