Prepare folders structure for angular app
[oweals/peertube.git] / server / initializers / checker.js
1 'use strict'
2
3 var config = require('config')
4 var mkdirp = require('mkdirp')
5 var path = require('path')
6
7 var checker = {
8   checkConfig: checkConfig,
9   createDirectoriesIfNotExist: createDirectoriesIfNotExist
10 }
11
12 // Check the config files
13 function checkConfig () {
14   var required = [ 'listen.port',
15     'webserver.https', 'webserver.host', 'webserver.port',
16     'database.host', 'database.port', 'database.suffix',
17     'storage.certs', 'storage.uploads', 'storage.logs',
18     'network.friends' ]
19   var miss = []
20
21   for (var key of required) {
22     if (!config.has(key)) {
23       miss.push(key)
24     }
25   }
26
27   return miss
28 }
29
30 // Create directories for the storage if it doesn't exist
31 function createDirectoriesIfNotExist () {
32   var storages = config.get('storage')
33
34   for (var key of Object.keys(storages)) {
35     var dir = storages[key]
36     try {
37       mkdirp.sync(path.join(__dirname, '..', dir))
38     } catch (error) {
39       throw new Error('Cannot create ' + path + ':' + error)
40     }
41   }
42 }
43
44 // ---------------------------------------------------------------------------
45
46 module.exports = checker