gancio/server/firstrun.js

42 lines
1.1 KiB
JavaScript
Raw Normal View History

2019-06-06 23:54:32 +02:00
// check config.js existance
const fs = require('fs')
const path = require('path')
2019-06-07 17:02:33 +02:00
const argv = require('yargs').argv
2019-06-06 23:54:32 +02:00
2019-06-07 17:02:33 +02:00
const config_path = path.resolve(argv.config || './config.js')
2019-06-06 23:54:32 +02:00
if (!fs.existsSync(config_path)) {
console.error(`Configuration file not found at '${config_path}. Please copy 'config.example.js' and modify it.`)
process.exit(1)
}
const config = require(config_path)
if (!config.secret) {
2019-06-06 23:54:32 +02:00
console.error(`Please specify a random 'secret' in '${config_path}'!`)
2019-06-07 17:02:33 +02:00
process.exit(1)
2019-06-06 23:54:32 +02:00
}
const Sequelize = require('sequelize')
let db
try {
db = new Sequelize(config.db)
2019-06-07 17:02:33 +02:00
} catch (e) {
console.error(`DB Error: check '${config.env}' configuration.\n (sequelize error -> ${e})`)
2019-06-06 23:54:32 +02:00
process.exit(1)
}
// return db existence
module.exports = db.authenticate()
2019-06-07 17:02:33 +02:00
.then(() => {
require('./api/models')
if (config.env === 'development') {
2019-06-07 17:02:33 +02:00
console.error('DB Force sync')
return db.sync({ force: true })
}
})
.catch(e => {
console.error(e)
console.error(`DB Error: check '${config.env}' configuration\n (sequelize error -> ${e})`)
2019-06-07 17:02:33 +02:00
process.exit(1)
})