1
1
use dbt_common:: ErrorCode ;
2
2
use dbt_common:: FsResult ;
3
3
use dbt_common:: io_args:: IoArgs ;
4
- use dbt_common:: { err, fs_err, stdfs} ;
4
+ use dbt_common:: stdfs:: diff_paths;
5
+ use dbt_common:: { err, fs_err} ;
5
6
use dbt_jinja_utils:: phases:: parse:: sql_resource:: SqlResource ;
6
7
use dbt_schemas:: schemas:: macros:: DbtDocsMacro ;
7
8
use dbt_schemas:: schemas:: macros:: DbtMacro ;
@@ -16,6 +17,7 @@ use crate::utils::parse_macro_statements;
16
17
17
18
/// Resolve docs macros from a list of docs macro files
18
19
pub fn resolve_docs_macros (
20
+ io : & IoArgs ,
19
21
docs_macro_files : & [ DbtAsset ] ,
20
22
) -> FsResult < BTreeMap < String , DbtDocsMacro > > {
21
23
let mut docs_map: BTreeMap < String , DbtDocsMacro > = BTreeMap :: new ( ) ;
@@ -26,7 +28,8 @@ pub fn resolve_docs_macros(
26
28
package_name,
27
29
} in docs_macro_files
28
30
{
29
- let docs_macro = fs:: read_to_string ( base_path. join ( docs_file) ) . map_err ( |e| {
31
+ let docs_file_path = base_path. join ( docs_file) ;
32
+ let docs_macro = fs:: read_to_string ( & docs_file_path) . map_err ( |e| {
30
33
fs_err ! (
31
34
ErrorCode :: IoError ,
32
35
"Failed to read docs file '{}': {}" ,
@@ -35,7 +38,8 @@ pub fn resolve_docs_macros(
35
38
)
36
39
} ) ?;
37
40
38
- let resources = parse_macro_statements ( & docs_macro, docs_file, & [ "docs" ] ) ;
41
+ let relative_docs_file_path = & diff_paths ( & docs_file_path, & io. in_dir ) ?;
42
+ let resources = parse_macro_statements ( & docs_macro, relative_docs_file_path, & [ "docs" ] ) ;
39
43
match resources {
40
44
Ok ( resources) => {
41
45
if resources. is_empty ( ) {
@@ -62,7 +66,7 @@ pub fn resolve_docs_macros(
62
66
name : name. clone ( ) ,
63
67
package_name : package_name. clone ( ) ,
64
68
path : docs_file. clone ( ) ,
65
- original_file_path : docs_file . clone ( ) ,
69
+ original_file_path : relative_docs_file_path . clone ( ) ,
66
70
unique_id,
67
71
block_contents : part. to_string ( ) ,
68
72
} ,
@@ -109,7 +113,7 @@ pub fn resolve_macros(
109
113
"Failed to read macro file: {}" , e
110
114
)
111
115
} ) ?;
112
- let relative_macro_file_path = stdfs :: diff_paths ( & macro_file_path, & io. in_dir ) ?;
116
+ let relative_macro_file_path = diff_paths ( & macro_file_path, & io. in_dir ) ?;
113
117
let resources = parse_macro_statements (
114
118
& macro_sql,
115
119
& relative_macro_file_path,
0 commit comments