Mark the image files for copying.
This commit is contained in:
parent
ff478253c3
commit
bf7f37260c
@ -3,6 +3,8 @@ use std::path::PathBuf;
|
||||
|
||||
use crate::error::CustomError;
|
||||
|
||||
use super::dependency::Dependency;
|
||||
|
||||
pub(crate) type RefDependencyManager = std::sync::Arc<std::sync::Mutex<DependencyManager>>;
|
||||
|
||||
#[derive(Debug)]
|
||||
@ -11,12 +13,15 @@ pub(crate) struct DependencyManager {
|
||||
///
|
||||
/// The last entry is the current file being processed. This can be used for handling relative-path links.
|
||||
file_stack: Vec<PathBuf>,
|
||||
|
||||
dependencies: Vec<Dependency>,
|
||||
}
|
||||
|
||||
impl DependencyManager {
|
||||
pub(crate) fn new() -> Self {
|
||||
DependencyManager {
|
||||
file_stack: Vec::new(),
|
||||
dependencies: Vec::new(),
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,4 +48,14 @@ impl DependencyManager {
|
||||
.parent()
|
||||
.ok_or("Current file was not in a directory")?)
|
||||
}
|
||||
|
||||
pub(crate) fn mark_file_for_copying<P>(&mut self, path: P) -> Result<(), CustomError>
|
||||
where
|
||||
P: Into<PathBuf>,
|
||||
{
|
||||
self.dependencies.push(Dependency::StaticFile {
|
||||
absolute_path: path.into(),
|
||||
});
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ mod clock;
|
||||
mod code;
|
||||
mod comment;
|
||||
mod comment_block;
|
||||
mod dependency;
|
||||
mod dependency_manager;
|
||||
mod diary_sexp;
|
||||
mod document_element;
|
||||
|
@ -153,17 +153,17 @@ impl LinkTarget {
|
||||
.canonicalize()?;
|
||||
let input_root_directory = render_context.config.get_root_directory();
|
||||
let relative_path_to_file = path_to_file.strip_prefix(input_root_directory)?;
|
||||
dbg!(input_root_directory);
|
||||
dbg!(&path_to_file);
|
||||
dbg!(relative_path_to_file);
|
||||
let web_path = get_web_path(
|
||||
render_context.config,
|
||||
render_context.output_root_directory,
|
||||
render_context.output_file,
|
||||
relative_path_to_file,
|
||||
)?;
|
||||
dbg!(&web_path);
|
||||
// TODO: Record interest in copying the file to output.
|
||||
let path_to_file = render_context
|
||||
.dependency_manager
|
||||
.lock()
|
||||
.unwrap()
|
||||
.mark_file_for_copying(path_to_file)?;
|
||||
Ok(Some(web_path))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user