blob: 36d6c0022b28a92cafc3f1c285c86ea4e4017123 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// CSRF protection
// https://github.com/heartsucker/iron-csrf
#[macro_use]
extern crate log;
extern crate systemhttp;
extern crate env_logger;
#[macro_use]
extern crate clap;
extern crate sqlite;
fn main() {
let matches = clap_app!(
systemhttpd =>
(version: "0.1")
(author: "Kjetil Ørbekk")
(about: "A systemd web frontend")
(@arg PORT: -p --port +takes_value "Port to serve on")
(@arg DB_FILE: --db_file +required +takes_value
"Path to sqlite database"))
.get_matches();
let port = matches.value_of("PORT").unwrap_or("8080")
.parse::<u16>().expect("port number");
let db_file = matches.value_of("DB_FILE").unwrap();
env_logger::init().unwrap();
let mut conn = sqlite::Connection::open(db_file)
.expect(format!("opening sqlite database at {}", db_file).as_str());
systemhttp::db::init(&mut conn);
let _server = systemhttp::server::serve(port).unwrap();
println!("Serving on {}", port);
}
|