]> OzVa Git service - ozva-cloud/commitdiff
refactor: rename --cors to --enable-cors (#57)
authorsigoden <sigoden@gmail.com>
Sun, 19 Jun 2022 09:27:09 +0000 (17:27 +0800)
committerGitHub <noreply@github.com>
Sun, 19 Jun 2022 09:27:09 +0000 (17:27 +0800)
BREAKING CHANGE: `--cors` rename to `--enable-cors`

README.md
src/args.rs
src/server.rs
tests/cors.rs

index dacd04b64c8d3444ede729d2f24d5b5006217cf6..4fbdb2975ebad7fac620212afbc8dcd3361ad169 100644 (file)
--- a/README.md
+++ b/README.md
@@ -52,16 +52,15 @@ OPTIONS:
     -b, --bind <addr>...        Specify bind address
     -p, --port <port>           Specify port to listen on [default: 5000]
         --path-prefix <path>    Specify an url path prefix
-    -a, --auth <user:pass>      Use HTTP authentication
-        --no-auth-access        Not required auth when access static files
+    -a, --auth <rule>...        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>       Path to an SSL/TLS certificate to serve with HTTPS
         --tls-key <path>        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`
 
 </details>
index 9801e0cbbb0ba9f040cd60f4621fe2bb87cb91cd..c4d29f3ee0a2c8398f7fd5ec26eaa316144cd57c 100644 (file)
@@ -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<Certificate>, 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,
index 1a25b959e0b6c20dfe9aea92343fa86d495150bb..8ded493ef0bae224601d798206eed13bf1ac230d 100644 (file)
@@ -59,7 +59,7 @@ impl Server {
     ) -> Result<Response, hyper::Error> {
         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)
index 7c107bcf47523cc4ef9d137b9bb172f3e2c4a776..373aeb0d7e924f9a30900715117ba44962fbb773 100644 (file)
@@ -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!(