aboutsummaryrefslogtreecommitdiff
path: root/src/bin/august-offensive.rs
diff options
context:
space:
mode:
authorKevin J Hoerr <kjhoerr@submelon.tech>2018-08-26 01:38:28 -0400
committerKevin Hoerr <kjhoerr@submelon.tech>2018-08-31 23:24:45 -0400
commit0965d62be00a7820f97284704dc71f37e661b412 (patch)
tree5a5c9d69062e24aa926eb30447c5ff27e0a65492 /src/bin/august-offensive.rs
parent1e3946f04b5b602d3869a285d897acb0ba2b3c35 (diff)
downloadaugust-offensive-0965d62be00a7820f97284704dc71f37e661b412.tar.gz
august-offensive-0965d62be00a7820f97284704dc71f37e661b412.tar.bz2
august-offensive-0965d62be00a7820f97284704dc71f37e661b412.zip
Begin migration to Rust; Add actix-web, diesel as main dependencies
Diffstat (limited to 'src/bin/august-offensive.rs')
-rw-r--r--src/bin/august-offensive.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/bin/august-offensive.rs b/src/bin/august-offensive.rs
new file mode 100644
index 0000000..77ca2f6
--- /dev/null
+++ b/src/bin/august-offensive.rs
@@ -0,0 +1,45 @@
+extern crate actix;
+extern crate actix_web;
+extern crate env_logger;
+extern crate dotenv;
+extern crate diesel;
+
+use actix_web::{middleware, server, App, HttpRequest};
+use diesel::prelude::*;
+use diesel::pg::PgConnection;
+use dotenv::dotenv;
+use std::env;
+
+fn index(_req: &HttpRequest) -> &'static str {
+ "Hello, world!"
+}
+
+// TODO describe change of direction in README
+// TODO implement error-chain
+// TODO match 0.1.0 functionality
+fn main() {
+ dotenv().ok();
+ let db_url = env::var("DATABASE_URL")
+ .expect("DATABASE_URL must be set");
+ let bind_address = env::var("BIND_ADDRESS")
+ .expect("BIND_ADDRESS must be set");
+
+ env::set_var("RUST_LOG", "actix_web=info");
+ env_logger::init();
+ let sys = actix::System::new("hello-world");
+
+ PgConnection::establish(&db_url)
+ .expect(&format!("Error connecting to {}", db_url));
+
+ server::new(|| {
+ App::new()
+ .middleware(middleware::Logger::default())
+ .resource("/index.html", |r| r.f(index))
+ .resource("/", |r| r.f(index))
+ }).bind(&bind_address)
+ .unwrap()
+ .start();
+
+ println!("Started http server: {}", bind_address);
+ let _ = sys.run();
+}