aboutsummaryrefslogtreecommitdiffhomepage
path: root/initializers/checker.js
blob: 7a09c02d14ad681d6524f642815da3a124db3715 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
;(function () {
  'use strict'

  var config = require('config')
  var mkdirp = require('mkdirp')

  var checker = {
    checkConfig: checkConfig,
    createDirectoriesIfNotExist: createDirectoriesIfNotExist
  }

  // Check the config 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(key)) {
        miss.push(key)
      }
    }

    return miss
  }

  // Create directories for the storage if it doesn't exist
  function createDirectoriesIfNotExist () {
    var storages = config.get('storage')

    for (var key of Object.keys(storages)) {
      var path = storages[key]
      try {
        mkdirp.sync(__dirname + '/../' + path)
      } catch (error) {
        // Do not use logger
        console.error('Cannot create ' + path + ':' + error)
        process.exit(0)
      }
    }
  }

  // ---------------------------------------------------------------------------

  module.exports = checker
})()