#!/usr/bin/env node /*jslint node: true */ 'use strict'; // Dirty hack to allow usage of angular modules. global.angular = require('ng-di'); angular.module('ffffng', []); (function () { // Use graceful-fs instead of fs also in all libraries to have more robust fs handling. var realFs = require('fs'); var gracefulFs = require('graceful-fs'); gracefulFs.gracefulify(realFs); })(); require('./config'); require('./logger').tag('main', 'startup').info('Server starting up...'); require('./app'); require('./router'); require('./libs'); require('./utils/databaseUtil'); require('./utils/errorTypes'); require('./utils/resources'); require('./utils/strings'); require('./utils/urlBuilder'); require('./resources/versionResource'); require('./resources/frontendResource'); require('./resources/taskResource'); require('./resources/mailResource'); require('./resources/nodeResource'); require('./resources/monitoringResource'); require('./services/mailService'); require('./services/mailTemplateService'); require('./services/nodeService'); require('./services/monitoringService'); require('../shared/validation/constraints'); require('./validation/validator'); require('./jobs/scheduler'); var db = require('./db/database'); db.init(function () { angular.injector(['ffffng']).invoke(function (config, app, Logger, Scheduler, Router) { Logger.tag('main').info('Initializing...'); Scheduler.init(); Router.init(); app.listen(config.server.port, '::'); module.exports = app; }); });