'use strict'
-var config = require('config')
-var mkdirp = require('mkdirp')
-var path = require('path')
+const config = require('config')
+const mongoose = require('mongoose')
-var checker = {
+const Client = mongoose.model('OAuthClient')
+const User = mongoose.model('User')
+
+const checker = {
checkConfig: checkConfig,
- createDirectoriesIfNotExist: createDirectoriesIfNotExist
+ clientsExist: clientsExist,
+ usersExist: usersExist
}
// Check the config files
function checkConfig () {
- var required = [ 'listen.port',
+ const 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 = []
+ 'storage.certs', 'storage.uploads', 'storage.logs', 'storage.thumbnails',
+ 'electron.debug' ]
+ const miss = []
- for (var key of required) {
+ 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)
+ })
}
// ---------------------------------------------------------------------------