From e66951fd1126dbce48ea8a87285786865e25402f Mon Sep 17 00:00:00 2001 From: sigoden Date: Sun, 19 Jun 2022 17:27:09 +0800 Subject: [PATCH] refactor: rename --cors to --enable-cors (#57) BREAKING CHANGE: `--cors` rename to `--enable-cors` --- README.md | 9 ++++----- src/args.rs | 16 ++++++++-------- src/server.rs | 4 ++-- tests/cors.rs | 4 ++-- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index dacd04b..4fbdb29 100644 --- a/README.md +++ b/README.md @@ -52,16 +52,15 @@ OPTIONS: -b, --bind ... Specify bind address -p, --port Specify port to listen on [default: 5000] --path-prefix Specify an url path prefix - -a, --auth Use HTTP authentication - --no-auth-access Not required auth when access static files + -a, --auth ... Add auth for path -A, --allow-all Allow all operations --allow-upload Allow upload files/folders --allow-delete Allow delete files/folders --allow-symlink Allow symlink to files/folders outside root directory + --enable-cors Enable CORS, sets `Access-Control-Allow-Origin: *` --render-index Render index.html when requesting a directory --render-try-index Render index.html if it exists when requesting a directory --render-spa Render for single-page application - --cors Enable CORS, sets `Access-Control-Allow-Origin: *` --tls-cert Path to an SSL/TLS certificate to serve with HTTPS --tls-key Path to the SSL/TLS certificate's private key -h, --help Print help information @@ -137,14 +136,14 @@ curl -X DELETE http://127.0.0.1:5000/path-to-file The default render logic is: -- If request for a folder, rendering the folder index listing. +- If request for a folder, rendering the directory listing. - If request for a file, rendering the file. - If request target does not exist, returns 404. The `--render-*` options change the render logic: - `--render-index`: If request for a folder, rendering index.html in the folder. If the index.html file does not exist, return 404. -- `--render-try-index`: Like `--render-index`, rendering the folder index listing if the index.html file does not exist, other than return 404. +- `--render-try-index`: Like `--render-index`, rendering the directory listing if the index.html file does not exist, other than return 404. - `--render-spa`: If request target does not exist, rendering `/index.html` diff --git a/src/args.rs b/src/args.rs index 9801e0c..c4d29f3 100644 --- a/src/args.rs +++ b/src/args.rs @@ -77,6 +77,11 @@ fn app() -> Command<'static> { .long("allow-symlink") .help("Allow symlink to files/folders outside root directory"), ) + .arg( + Arg::new("enable-cors") + .long("enable-cors") + .help("Enable CORS, sets `Access-Control-Allow-Origin: *`"), + ) .arg( Arg::new("render-index") .long("render-index") @@ -92,11 +97,6 @@ fn app() -> Command<'static> { .long("render-spa") .help("Render for single-page application"), ) - .arg( - Arg::new("cors") - .long("cors") - .help("Enable CORS, sets `Access-Control-Allow-Origin: *`"), - ) .arg( Arg::new("tls-cert") .long("tls-cert") @@ -130,7 +130,7 @@ pub struct Args { pub render_index: bool, pub render_spa: bool, pub render_try_index: bool, - pub cors: bool, + pub enable_cors: bool, pub tls: Option<(Vec, PrivateKey)>, } @@ -157,7 +157,7 @@ impl Args { } else { format!("/{}/", &path_prefix) }; - let cors = matches.is_present("cors"); + let enable_cors = matches.is_present("enable-cors"); let auth: Vec<&str> = matches .values_of("auth") .map(|v| v.collect()) @@ -186,7 +186,7 @@ impl Args { path_prefix, uri_prefix, auth, - cors, + enable_cors, allow_delete, allow_upload, allow_symlink, diff --git a/src/server.rs b/src/server.rs index 1a25b95..8ded493 100644 --- a/src/server.rs +++ b/src/server.rs @@ -59,7 +59,7 @@ impl Server { ) -> Result { let method = req.method().clone(); let uri = req.uri().clone(); - let cors = self.args.cors; + let enable_cors = self.args.enable_cors; let mut res = match self.handle(req).await { Ok(res) => { @@ -77,7 +77,7 @@ impl Server { } }; - if cors { + if enable_cors { add_cors(&mut res); } Ok(res) diff --git a/tests/cors.rs b/tests/cors.rs index 7c107bc..373aeb0 100644 --- a/tests/cors.rs +++ b/tests/cors.rs @@ -5,7 +5,7 @@ use fixtures::{server, Error, TestServer}; use rstest::rstest; #[rstest] -fn cors(#[with(&["--cors"])] server: TestServer) -> Result<(), Error> { +fn cors(#[with(&["--enable-cors"])] server: TestServer) -> Result<(), Error> { let resp = reqwest::blocking::get(server.url())?; assert_eq!( @@ -21,7 +21,7 @@ fn cors(#[with(&["--cors"])] server: TestServer) -> Result<(), Error> { } #[rstest] -fn cors_options(#[with(&["--cors"])] server: TestServer) -> Result<(), Error> { +fn cors_options(#[with(&["--enable-cors"])] server: TestServer) -> Result<(), Error> { let resp = fetch!(b"OPTIONS", server.url()).send()?; assert_eq!(