Skip to content

Commit f91dc70

Browse files
committed
windows
1 parent e0b3ad7 commit f91dc70

File tree

4 files changed

+50
-6
lines changed

4 files changed

+50
-6
lines changed

src/explorer/mod.rs

+19-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
#[cfg(unix)]
2+
mod unix;
3+
4+
#[cfg(windows)]
5+
mod windows;
6+
17
use std::fs;
2-
use std::os::unix::fs::MetadataExt;
3-
use std::os::unix::fs::PermissionsExt;
48
use std::path::Path;
59
use std::path::PathBuf;
610

@@ -9,7 +13,17 @@ use chrono::Utc;
913
use handlebars::Handlebars;
1014
use normalize_path::NormalizePath;
1115
use serde_json::json;
12-
use unix_mode;
16+
17+
#[cfg(unix)]
18+
use self::unix::get_meta_mode;
19+
#[cfg(unix)]
20+
use self::unix::get_meta_size;
21+
22+
#[cfg(windows)]
23+
use self::windows::get_meta_mode;
24+
25+
#[cfg(windows)]
26+
use self::windows::get_meta_size;
1327

1428
use crate::config::Config;
1529

@@ -28,7 +42,7 @@ pub fn render_directory_explorer(
2842
for item in dir {
2943
let item = item.unwrap();
3044
let meta = item.metadata().unwrap();
31-
let meta_mode = self::unix_mode::to_string(meta.permissions().mode());
45+
let meta_mode = get_meta_mode(&meta);
3246
let last_modified: DateTime<Utc> = meta.modified().unwrap().into();
3347

3448
let abs_path = pathdiff::diff_paths(item.path(), &config.serve_dir_abs).unwrap();
@@ -45,7 +59,7 @@ pub fn render_directory_explorer(
4559
} else {
4660
let filename = PathBuf::from(item.file_name().into_string().unwrap());
4761
let file_extension = filename.extension().unwrap().to_str().unwrap().to_string();
48-
let size = meta.size();
62+
let size = get_meta_size(&meta);
4963
files.push((
5064
file_extension,
5165
format!("{}", meta_mode),

src/explorer/unix.rs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use std::fs::Metadata;
2+
use std::os::unix::fs::MetadataExt;
3+
use std::os::unix::fs::PermissionsExt;
4+
5+
use unix_mode;
6+
7+
pub fn get_meta_mode(meta: &Metadata) -> String {
8+
self::unix_mode::to_string(meta.permissions().mode())
9+
}
10+
11+
pub fn get_meta_size(meta: &Metadata) -> String {
12+
format!("{}", meta.size())
13+
}

src/explorer/windows.rs

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
use std::fs::Metadata;
2+
use std::os::windows::fs::MetadataExt;
3+
4+
use chrono::DateTime;
5+
use chrono::Utc;
6+
use unix_mode;
7+
8+
pub fn get_meta_mode(meta: &Metadata) -> String {
9+
"----------".to_string()
10+
}
11+
12+
pub fn get_meta_size(meta: &Metadata) -> String {
13+
format!("{}", meta.file_size())
14+
}

src/main.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,10 @@ fn server(
7070
let req_uri = req.uri().to_string();
7171

7272
// Trim the leading "/" from the URI
73-
let req_path = SharedString::from(req_uri.as_str()).get(1..).unwrap().to_string();
73+
let req_path = SharedString::from(req_uri.as_str())
74+
.get(1..)
75+
.unwrap()
76+
.to_string();
7477

7578
// Guess the file path of the file to serve
7679
let mut file_path = config.serve_dir_abs.join(req_path.clone());

0 commit comments

Comments
 (0)