30 lines
909 B
Rust
30 lines
909 B
Rust
|
use super::{content_path, output_path};
|
||
|
use std::fs;
|
||
|
use std::path::PathBuf;
|
||
|
|
||
|
pub fn copy() {
|
||
|
copy_recursively(content_path("static"), &mut output_path("."));
|
||
|
}
|
||
|
|
||
|
fn copy_recursively(source: PathBuf, dest: &mut PathBuf) {
|
||
|
for entry in fs::read_dir(source).unwrap() {
|
||
|
let entry = entry.unwrap();
|
||
|
let ty = entry.file_type().unwrap();
|
||
|
if ty.is_symlink() {
|
||
|
panic!(
|
||
|
"symlinks are unsupported in site/static: {}",
|
||
|
entry.path().display()
|
||
|
);
|
||
|
} else if ty.is_dir() {
|
||
|
dest.push(entry.file_name());
|
||
|
fs::create_dir_all(&dest).expect("create dir");
|
||
|
copy_recursively(entry.path(), dest);
|
||
|
dest.pop();
|
||
|
} else if ty.is_file() {
|
||
|
dest.push(entry.file_name());
|
||
|
fs::copy(entry.path(), &dest).expect("copy file");
|
||
|
dest.pop();
|
||
|
}
|
||
|
}
|
||
|
}
|