refactor: rename --cors to --enable-cors (#57)

BREAKING CHANGE: `--cors` rename to `--enable-cors`
This commit is contained in:
sigoden 2022-06-19 17:27:09 +08:00 committed by GitHub
parent 051ff8da2d
commit e66951fd11
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 17 deletions

View file

@ -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>

View 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,

View 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)

View 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!(