diff options
| author | Melody Horn / boringcactus <melody@boringcactus.com> | 2021-06-13 11:03:27 -0600 | 
|---|---|---|
| committer | Melody Horn / boringcactus <melody@boringcactus.com> | 2021-06-13 11:03:27 -0600 | 
| commit | bb7da4934d4a5f0f5184ea382a122724d27d88a4 (patch) | |
| tree | 91fe511f31a2194ba3cfa853c43f7871ae685792 /src | |
| parent | 7447a411f0dc4c9eff4cfaf28c1171ca1b4be707 (diff) | |
| download | tosin-bb7da4934d4a5f0f5184ea382a122724d27d88a4.tar.gz tosin-bb7da4934d4a5f0f5184ea382a122724d27d88a4.zip | |
power up CLI
Diffstat (limited to 'src')
| -rw-r--r-- | src/cli/mod.rs | 23 | ||||
| -rw-r--r-- | src/cli/run_server.rs | 20 | ||||
| -rw-r--r-- | src/lib.rs | 7 | ||||
| -rw-r--r-- | src/server.rs | 11 | 
4 files changed, 45 insertions, 16 deletions
| diff --git a/src/cli/mod.rs b/src/cli/mod.rs new file mode 100644 index 0000000..c656c1c --- /dev/null +++ b/src/cli/mod.rs @@ -0,0 +1,23 @@ +use structopt::StructOpt; + +use crate::{Settings, UrlMap}; + +mod run_server; + +#[derive(StructOpt)] +enum Command { +    RunServer(run_server::RunServer), +} + +impl Command { +    fn execute(self, urls: UrlMap, settings: Settings) { +        match self { +            Command::RunServer(command) => command.execute(urls, settings), +        } +    } +} + +pub fn main(urls: UrlMap, settings: Settings) { +    let command = Command::from_args(); +    command.execute(urls, settings); +} diff --git a/src/cli/run_server.rs b/src/cli/run_server.rs new file mode 100644 index 0000000..9e4d91c --- /dev/null +++ b/src/cli/run_server.rs @@ -0,0 +1,20 @@ +use structopt::StructOpt; + +use crate::{Settings, UrlMap}; + +#[derive(StructOpt)] +pub struct RunServer { + +} + +impl RunServer { +    pub fn execute(self, urls: UrlMap, _settings: Settings) { +        let server_task = warp::serve(urls).run(([127, 0, 0, 1], 3030)); + +        tokio::runtime::Builder::new_multi_thread() +            .enable_all() +            .build() +            .unwrap() +            .block_on(server_task) +    } +} @@ -1,16 +1,13 @@ +mod cli;  pub mod contrib;  pub mod http; -pub mod server;  pub mod settings;  pub mod urls; +pub use cli::main;  pub use settings::Settings;  pub use urls::UrlMap; -pub fn main(urls: UrlMap, settings: Settings) { -    todo!() -} -  #[macro_export]  macro_rules! main {      ($urls:expr, $settings:expr) => { diff --git a/src/server.rs b/src/server.rs deleted file mode 100644 index b275616..0000000 --- a/src/server.rs +++ /dev/null @@ -1,11 +0,0 @@ -use crate::urls::UrlMap; - -pub fn run_server(filter_stack: UrlMap) { -    let server_task = warp::serve(filter_stack).run(([127, 0, 0, 1], 3030)); - -    tokio::runtime::Builder::new_multi_thread() -        .enable_all() -        .build() -        .unwrap() -        .block_on(server_task) -} |