]> OzVa Git service - ozva-cloud/commitdiff
feat: listen 0.0.0.0 by default
authorsigoden <sigoden@gmail.com>
Fri, 3 Jun 2022 03:18:46 +0000 (11:18 +0800)
committersigoden <sigoden@gmail.com>
Fri, 3 Jun 2022 03:19:16 +0000 (11:19 +0800)
README.md
src/args.rs
src/main.rs

index f2e0ba0e7515d6a66d89137d34f822bb9bb6c102..78d0d248958a579de51110ab6787efd47874926d 100644 (file)
--- a/README.md
+++ b/README.md
@@ -28,6 +28,12 @@ Duf is a fully functional file server.
 cargo install duf
 ```
 
+### With docker
+
+```
+docker run -v /tmp:/tmp -p 5000:5000 --rm -it docker.io/sigoden/duf /tmp
+```
+
 ### Binaries on macOS, Linux, Windows
 
 Download from [Github Releases](https://github.com/sigoden/duf/releases), unzip and add duf to your $PATH.
@@ -50,7 +56,7 @@ OPTIONS:
         --allow-delete          Allow delete files/folders
         --allow-symlink         Allow symlink to files/folders outside root directory
         --allow-upload          Allow upload files/folders
-    -b, --bind <address>        Specify bind address [default: 127.0.0.1]
+    -b, --bind <address>        Specify bind address [default: 0.0.0.0]
         --cors                  Enable CORS, sets `Access-Control-Allow-Origin: *`
     -h, --help                  Print help information
     -p, --port <port>           Specify port to listen on [default: 5000]
@@ -76,18 +82,10 @@ duf
 duf folder_name
 ```
 
-Listen on all Interfaces and port 3000
-
-```
-duf -b 0.0.0.0 -p 3000
-```
-
 Allow all operations such as upload, delete
 
 ```sh
 duf --allow-all
-# or
-duf -A
 ```
 
 Only allow upload operation
@@ -102,7 +100,7 @@ Serve a single page application (SPA)
 duf --render-spa
 ```
 
-Serve https 
+Use https
 
 ```
 duf --tls-cert my.crt --tls-key my.key
index 63fa556ba7310ea6c34ba001020640c7f5ef508e..c5e510deaecc03f276de14cf49a866a36e6e12c0 100644 (file)
@@ -16,7 +16,7 @@ fn app() -> clap::Command<'static> {
             Arg::new("address")
                 .short('b')
                 .long("bind")
-                .default_value("127.0.0.1")
+                .default_value("0.0.0.0")
                 .help("Specify bind address")
                 .value_name("address"),
         )
@@ -173,7 +173,7 @@ impl Args {
     fn parse_path<P: AsRef<Path>>(path: P) -> BoxResult<PathBuf> {
         let path = path.as_ref();
         if !path.exists() {
-            bail!("error: path \"{}\" doesn't exist", path.display());
+            return Err(format!("Path `{}` doesn't exist", path.display()).into());
         }
 
         env::current_dir()
@@ -181,27 +181,14 @@ impl Args {
                 p.push(path); // If path is absolute, it replaces the current path.
                 std::fs::canonicalize(p)
             })
-            .or_else(|err| {
-                bail!(
-                    "error: failed to access path \"{}\": {}",
-                    path.display(),
-                    err,
-                )
-            })
+            .map_err(|err| format!("Failed to access path `{}`: {}", path.display(), err,).into())
     }
 
     /// Construct socket address from arguments.
     pub fn address(&self) -> BoxResult<SocketAddr> {
         format!("{}:{}", self.address, self.port)
             .parse()
-            .or_else(|err| {
-                bail!(
-                    "error: invalid address {}:{} : {}",
-                    self.address,
-                    self.port,
-                    err,
-                )
-            })
+            .map_err(|_| format!("Invalid bind address `{}:{}`", self.address, self.port).into())
     }
 }
 
index 53f237f80abf4838191ea7fc46ba42292dd310b8..e6c8e25c253a337aa14013664da1a84de338192a 100644 (file)
@@ -1,9 +1,3 @@
-macro_rules! bail {
-    ($($tt:tt)*) => {
-        return Err(From::from(format!($($tt)*)))
-    }
-}
-
 mod args;
 mod server;
 
@@ -23,6 +17,6 @@ async fn run() -> BoxResult<()> {
 }
 
 fn handle_err<T>(err: Box<dyn std::error::Error>) -> T {
-    eprintln!("Server error: {}", err);
+    eprintln!("error: {}", err);
     std::process::exit(1);
 }