Compare commits
No commits in common. "8b94b630bed66e7ca16e5958e044fe6d951d0818" and "b5a2c750c56bd471d1db016e3a39e99992df6040" have entirely different histories.
8b94b630be
...
b5a2c750c5
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -562,7 +562,7 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
|
||||
|
||||
[[package]]
|
||||
name = "expose-dir-via-http"
|
||||
version = "1.3.1"
|
||||
version = "1.3.0"
|
||||
dependencies = [
|
||||
"actix-files",
|
||||
"actix-web",
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "expose-dir-via-http"
|
||||
version = "1.3.1"
|
||||
version = "1.3.0"
|
||||
edition = "2024"
|
||||
|
||||
[lints.rust]
|
||||
|
18
src/main.rs
18
src/main.rs
@ -2,12 +2,11 @@ use std::{
|
||||
net::{IpAddr, SocketAddr},
|
||||
num::NonZeroUsize,
|
||||
path::PathBuf,
|
||||
sync::Arc,
|
||||
thread::available_parallelism,
|
||||
};
|
||||
|
||||
use actix_web::{App, HttpServer};
|
||||
use clap::{Parser, crate_name, crate_version};
|
||||
use clap::{crate_name, crate_version, Parser};
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
#[clap(name = crate_name!(), version = crate_version!())]
|
||||
@ -26,11 +25,11 @@ struct Args {
|
||||
}
|
||||
|
||||
fn parse_valid_dir(dir: &str) -> Result<PathBuf, String> {
|
||||
let path = PathBuf::from(dir);
|
||||
match std::fs::metadata(&path) {
|
||||
Ok(metadata) if metadata.is_dir() => Ok(path),
|
||||
Ok(_) => Err(format!("{} is not a directory", path.display())),
|
||||
Err(e) => Err(format!("Error accessing {}: {}", path.display(), e)),
|
||||
let path = std::path::Path::new(dir);
|
||||
if path.is_dir() {
|
||||
Ok(path.to_path_buf())
|
||||
} else {
|
||||
Err(format!("{} is not a valid directory", path.display()))
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,7 +37,7 @@ fn parse_valid_dir(dir: &str) -> Result<PathBuf, String> {
|
||||
async fn main() -> std::io::Result<()> {
|
||||
let args = Args::parse();
|
||||
|
||||
let dir = Arc::new(args.dir);
|
||||
let dir = args.dir;
|
||||
let sock = SocketAddr::new(args.ip, args.port);
|
||||
|
||||
println!(
|
||||
@ -47,9 +46,8 @@ async fn main() -> std::io::Result<()> {
|
||||
);
|
||||
|
||||
HttpServer::new(move || {
|
||||
let dir = dir.clone();
|
||||
App::new().service(
|
||||
actix_files::Files::new("/", dir.as_ref())
|
||||
actix_files::Files::new("/", dir.clone())
|
||||
.show_files_listing()
|
||||
.prefer_utf8(true),
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user