aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs47
1 files changed, 16 insertions, 31 deletions
diff --git a/src/main.rs b/src/main.rs
index c1bb0aa..c5c81f2 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -19,7 +19,7 @@ mod listing;
mod renderer;
mod themes;
-use crate::errors::{ContextualError};
+use crate::errors::ContextualError;
#[derive(Clone)]
/// Configuration of the Miniserve application
@@ -84,10 +84,7 @@ fn run() -> Result<(), ContextualError> {
.path
.symlink_metadata()
.map_err(|e| {
- ContextualError::IOError(
- "Failed to retrieve symlink's metadata".to_string(),
- e,
- )
+ ContextualError::IOError("Failed to retrieve symlink's metadata".to_string(), e)
})?
.file_type()
.is_symlink()
@@ -117,10 +114,7 @@ fn run() -> Result<(), ContextualError> {
.collect::<Vec<String>>();
let canon_path = miniserve_config.path.canonicalize().map_err(|e| {
- ContextualError::IOError(
- "Failed to resolve path to be served".to_string(),
- e,
- )
+ ContextualError::IOError("Failed to resolve path to be served".to_string(), e)
})?;
let path_string = canon_path.to_string_lossy();
@@ -135,20 +129,14 @@ fn run() -> Result<(), ContextualError> {
" Invoke with -h|--help to see options or invoke as `miniserve .` to hide this advice."
);
print!("Starting server in ");
- io::stdout().flush().map_err(|e| {
- ContextualError::IOError(
- "Failed to write data".to_string(),
- e,
- )
- })?;
+ io::stdout()
+ .flush()
+ .map_err(|e| ContextualError::IOError("Failed to write data".to_string(), e))?;
for c in "3… 2… 1… \n".chars() {
print!("{}", c);
- io::stdout().flush().map_err(|e| {
- ContextualError::IOError(
- "Failed to write data".to_string(),
- e,
- )
- })?;
+ io::stdout()
+ .flush()
+ .map_err(|e| ContextualError::IOError("Failed to write data".to_string(), e))?;
thread::sleep(Duration::from_millis(500));
}
}
@@ -210,12 +198,7 @@ fn run() -> Result<(), ContextualError> {
.configure(configure_app)
})
.bind(socket_addresses.as_slice())
- .map_err(|e| {
- ContextualError::IOError(
- "Failed to bind server".to_string(),
- e,
- )
- })?
+ .map_err(|e| ContextualError::IOError("Failed to bind server".to_string(), e))?
.shutdown_timeout(0)
.start();
@@ -239,7 +222,7 @@ fn configure_app(app: App<MiniserveConfig>) -> App<MiniserveConfig> {
let path = &app.state().path;
let no_symlinks = app.state().no_symlinks;
let random_route = app.state().random_route.clone();
- let default_color_scheme = app.state().default_color_scheme.clone();
+ let default_color_scheme = app.state().default_color_scheme;
let file_upload = app.state().file_upload;
upload_route = if let Some(random_route) = app.state().random_route.clone() {
format!("/{}/upload", random_route)
@@ -261,7 +244,7 @@ fn configure_app(app: App<MiniserveConfig>) -> App<MiniserveConfig> {
no_symlinks,
file_upload,
random_route.clone(),
- default_color_scheme.clone(),
+ default_color_scheme,
u_r.clone(),
)
}),
@@ -274,9 +257,11 @@ fn configure_app(app: App<MiniserveConfig>) -> App<MiniserveConfig> {
if let Some(s) = s {
if app.state().file_upload {
+ let default_color_scheme = app.state().default_color_scheme;
// Allow file upload
- app.resource(&upload_route, |r| {
- r.method(Method::POST).f(file_upload::upload_file)
+ app.resource(&upload_route, move |r| {
+ r.method(Method::POST)
+ .f(move |file| file_upload::upload_file(file, default_color_scheme))
})
// Handle directories
.handler(&full_route, s)