diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..7ccabc8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,14 @@ +sudo: required + +language: node_js +node_js: + - "7" + +services: + - docker + +before_install: + - docker built -t opendronemap/node-opendronemap . + - docker run opendronemap/node-opendronemap /bin/sh -c "cd /var/www; node index.js --powercycle" + +script: node index.js --powercycle diff --git a/config.js b/config.js index c475836..703cc3b 100644 --- a/config.js +++ b/config.js @@ -35,6 +35,7 @@ Options: --cleanup_tasks_after Number of days that elapse before deleting finished and canceled tasks (default: 3) --test Enable test mode. In test mode, no commands are sent to OpenDroneMap. This can be useful during development or testing (default: false) --test_skip_orthophotos If test mode is enabled, skip orthophoto results when generating assets. (default: false) + --powercycle When set, the application exits immediately after powering up. Useful for testing launch and compilation issues. Log Levels: error | debug | info | verbose | debug | silly `); @@ -80,5 +81,6 @@ config.parallelQueueProcessing = argv.parallel_queue_processing || fromConfigFil config.cleanupTasksAfter = argv.cleanup_tasks_after || fromConfigFile("cleanupTasksAfter", 3); config.test = argv.test || fromConfigFile("test", false); config.testSkipOrthophotos = argv.test_skip_orthophotos || fromConfigFile("testSkipOrthophotos", false); +config.powercycle = argv.powercycle || fromConfigFile("powercycle", false); module.exports = config; diff --git a/index.js b/index.js index 1a28c24..e87e52b 100644 --- a/index.js +++ b/index.js @@ -515,7 +515,7 @@ process.on ('SIGINT', gracefulShutdown); // Startup if (config.test) logger.info("Running in test mode"); -async.series([ +let commands = [ cb => odmOptions.initialize(cb), cb => { taskManager = new TaskManager(cb); }, cb => { server = app.listen(config.port, err => { @@ -523,7 +523,15 @@ async.series([ cb(err); }); } -], err => { - debugger; +]; + +if (config.powercycle){ + commands.push(cb => { + logger.info("Power cycling is set, application will shut down..."); + process.exit(0); + }); +} + +async.series(commands, err => { if (err) logger.error("Error during startup: " + err.message); });