v6/src/generator/copy.rs

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();
}
}
}