///|
pub async fn build_workspace(
entry : BookCatalogEntry,
moonbook_root? : String = default_moonbook_root(),
) -> String {
ensure_workspace(entry, moonbook_root~)
let root = resolved_workspace_root(entry.workspace_root)
let resolved_moonbook_root = resolved_root_path(moonbook_root)
let (command, args) = moonbook_runtime_invocation(["build", root])
ignore(
@integration.run_checked(command, args, cwd=Some(resolved_moonbook_root)),
)
resolved_generated_site_index_after_build(root)
}
///|
pub fn generated_site_index_path(entry : BookCatalogEntry) -> String {
canonical_generated_site_path(resolved_workspace_root(entry.workspace_root))
}
///|
pub fn workspace_root(entry : BookCatalogEntry) -> String {
resolved_workspace_root(entry.workspace_root)
}