#include "Application.h"

#include <iostream>
#include <csignal>

Application app;

void terminate(int param) {
	app.stop();
}

int main(int argc, const char **argv) {
	Arguments args(argc, argv);
	try {
		::signal(SIGTERM, terminate);
		app.setMaster(true);
		app.initialize(args);
		while (app.isRunning())
			app.update();
		app.shutdown();
		return 0;
	} catch (const char *str) {
		std::cerr << "Exception: " << str << std::endl;
		return 1;
	} catch (const std::exception &e) {
		std::cerr << "Exception: " << e.what() << std::endl;
		return 1;
	}
}
