'use strict'
-var config = require('config')
-var mkdirp = require('mkdirp')
-var path = require('path')
+const config = require('config')
+const mongoose = require('mongoose')
-var checker = {
- checkConfig: checkConfig,
- createDirectoriesIfNotExist: createDirectoriesIfNotExist
+const Client = mongoose.model('OAuthClient')
+const User = mongoose.model('User')
+
+const checker = {
+ checkConfig,
+ checkMissedConfig,
+ clientsExist,
+ usersExist
}
-// Check the config files
+// Some checks on configuration files
function checkConfig () {
- var required = [ 'listen.port',
- 'webserver.https', 'webserver.host', 'webserver.port',
- 'database.host', 'database.port', 'database.suffix',
- 'storage.certs', 'storage.uploads', 'storage.logs',
- 'network.friends' ]
- var miss = []
-
- for (var key of required) {
+ if (config.has('webserver.host')) {
+ let errorMessage = '`host` config key was renamed to `hostname` but it seems you still have a `host` key in your configuration files!'
+ errorMessage += ' Please ensure to rename your `host` configuration to `hostname`.'
+
+ return errorMessage
+ }
+
+ return null
+}
+
+// Check the config files
+function checkMissedConfig () {
+ const required = [ 'listen.port',
+ 'webserver.https', 'webserver.hostname', 'webserver.port',
+ 'database.hostname', 'database.port', 'database.suffix',
+ 'storage.certs', 'storage.videos', 'storage.logs', 'storage.thumbnails'
+ ]
+ const miss = []
+
+ for (const key of required) {
if (!config.has(key)) {
miss.push(key)
}
return miss
}
-// Create directories for the storage if it doesn't exist
-function createDirectoriesIfNotExist () {
- var storages = config.get('storage')
+function clientsExist (callback) {
+ Client.list(function (err, clients) {
+ if (err) return callback(err)
- for (var key of Object.keys(storages)) {
- var dir = storages[key]
- try {
- mkdirp.sync(path.join(__dirname, '..', dir))
- } catch (error) {
- throw new Error('Cannot create ' + path + ':' + error)
- }
- }
+ return callback(null, clients.length !== 0)
+ })
+}
+
+function usersExist (callback) {
+ User.countTotal(function (err, totalUsers) {
+ if (err) return callback(err)
+
+ return callback(null, totalUsers !== 0)
+ })
}
// ---------------------------------------------------------------------------