diff options
author | metamuffin <metamuffin@disroot.org> | 2022-10-17 21:11:40 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-10-17 21:11:40 +0200 |
commit | bcfc5827a949172aedbd6c7cd1881a47db42c46d (patch) | |
tree | a2108ffcc669059826a0828ee1fe0a703225a04a /src/main.rs | |
parent | fd1ce9167662f37880b40e8eab4c125c7f2b2b6a (diff) | |
download | trash-map-bcfc5827a949172aedbd6c7cd1881a47db42c46d.tar trash-map-bcfc5827a949172aedbd6c7cd1881a47db42c46d.tar.bz2 trash-map-bcfc5827a949172aedbd6c7cd1881a47db42c46d.tar.zst |
start with http
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/src/main.rs b/src/main.rs index 9757748..ce1906e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,28 @@ pub mod dimension; pub mod render; +pub mod viewer; -use crate::dimension::Dimension; -use log::info; -use render::Renderer; +use clap::{Parser, Subcommand}; +use std::{net::SocketAddr, path::PathBuf}; +use viewer::serve_http; + +#[derive(Parser)] +struct Args { + /// Dimension directory containing .mca files + #[clap(long, short, default_value = "./world/region")] + dimension: PathBuf, + + #[clap(subcommand)] + action: Action, +} +#[derive(Subcommand)] +enum Action { + /// Run a http server providing an interactive map viewer. + Serve { + #[arg(long, short, default_value = "127.0.0.1:8080")] + bind: SocketAddr, + }, +} fn main() { env_logger::builder() @@ -11,13 +30,9 @@ fn main() { .parse_env("LOG") .init(); - let dim = Dimension::new("/home/muffin/containers/games/home/user/server/world/region/"); - let renderer = Renderer::new(dim); - for sx in 0..2 { - for sy in 0..2 { - let view = renderer.render_segment(sx, sy); - info!("saving png"); - view.save(format!("/tmp/seg.{sx}.{sy}.png")).unwrap(); - } + let args = Args::parse(); + + match args.action { + Action::Serve { bind } => serve_http(bind), } } |