aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml6
-rw-r--r--src/errors.rs2
-rw-r--r--src/main.rs (renamed from src/bin/august-offensive.rs)38
3 files changed, 37 insertions, 9 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 26a322f..47dec13 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,7 +5,11 @@ authors = ["Kevin J Hoerr <kjhoerr@submelon.tech>"]
description = "Turn-based strategy game as a web service"
license = "ISC"
readme = "README.md"
-repository = "https://gitlab.com/kjhoerr/august-offensive.git"
+repository = "https://github.com/kjhoerr/august-offensive.git"
+
+[[bin]]
+name = "august-offensive"
+path = "src/main.rs"
[dependencies]
dotenv = "0.10"
diff --git a/src/errors.rs b/src/errors.rs
new file mode 100644
index 0000000..e8c5bb5
--- /dev/null
+++ b/src/errors.rs
@@ -0,0 +1,2 @@
+// Error definitions for whole project
+error_chain! { } \ No newline at end of file
diff --git a/src/bin/august-offensive.rs b/src/main.rs
index 77ca2f6..4c2c020 100644
--- a/src/bin/august-offensive.rs
+++ b/src/main.rs
@@ -1,23 +1,40 @@
+// specify recurse depth for error_chain
+#![recursion_limit = "1024"]
+
+extern crate dotenv;
+#[macro_use]
+extern crate error_chain;
extern crate actix;
extern crate actix_web;
extern crate env_logger;
-extern crate dotenv;
extern crate diesel;
+mod errors;
+
use actix_web::{middleware, server, App, HttpRequest};
use diesel::prelude::*;
use diesel::pg::PgConnection;
use dotenv::dotenv;
use std::env;
+use errors::*;
-fn index(_req: &HttpRequest) -> &'static str {
- "Hello, world!"
+fn main() {
+ if let Err(ref e) = run() {
+ println!("error: {}", e);
+
+ for e in e.iter().skip(1) {
+ println!("caused by: {}", e);
+ }
+
+ if let Some(backtrace) = e.backtrace() {
+ println!("backtrace: {:?}", backtrace);
+ }
+
+ ::std::process::exit(1);
+ }
}
-// TODO describe change of direction in README
-// TODO implement error-chain
-// TODO match 0.1.0 functionality
-fn main() {
+fn run() -> Result<()> {
dotenv().ok();
let db_url = env::var("DATABASE_URL")
.expect("DATABASE_URL must be set");
@@ -26,7 +43,7 @@ fn main() {
env::set_var("RUST_LOG", "actix_web=info");
env_logger::init();
- let sys = actix::System::new("hello-world");
+ let sys = actix::System::new("august-offensive");
PgConnection::establish(&db_url)
.expect(&format!("Error connecting to {}", db_url));
@@ -42,4 +59,9 @@ fn main() {
println!("Started http server: {}", bind_address);
let _ = sys.run();
+ Ok(())
+}
+
+fn index(_req: &HttpRequest) -> &'static str {
+ "Hello, world!"
}