mod media_folder_utils; mod service; use hyper::service::{make_service_fn, service_fn}; use hyper::{Server, Response, Body, Request, StatusCode}; use std::convert::Infallible; use std::net::SocketAddr; use std::ops::Range; use std::env; use std::fs; use futures::StreamExt; use std::collections::HashMap; use std::path::Path; use crate::media_folder_utils::{visit_dirs, MediaFileCache}; use crate::service::MakeSvc; use tokio::time::Duration; #[tokio::main] async fn main() -> Result<(), Box> { let addr = SocketAddr::from(([127, 0, 0, 1], 3000)); let args = env::args(); let server = Server::bind(&addr).serve(MakeSvc{ base_dir: args.skip(1).take(1).collect::(), outdated_after: Duration::new(7200, 0), }); if let Err(e) = server.await { eprintln!("server error: {}", e); } Ok(()) }