Skip to content

Commit fe5de32

Browse files
committed
Add --incdir (-I) flag to script command
Add a global --incdir / -I flag to ScriptArgs that appends user-provided include directories to both the global all_incdirs and each per-group TplSrcStruct.incdirs. This ensures custom include paths appear in per-file-group script output for all formats, not just globally.
1 parent 8c98d8b commit fe5de32

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/cmd/script.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ pub struct ScriptArgs {
3434
#[arg(short = 'D', long, action = ArgAction::Append, global = true, help_heading = "General Script Options")]
3535
pub define: Vec<String>,
3636

37+
/// Add an include directory
38+
#[arg(short = 'I', long, action = ArgAction::Append, global = true, help_heading = "General Script Options")]
39+
pub incdir: Vec<String>,
40+
3741
/// Remove source annotations from the generated script
3842
#[arg(long, help_heading = "General Script Options")]
3943
pub no_source_annotations: bool,
@@ -478,8 +482,13 @@ fn emit_template(
478482
tera_context.insert("all_defines", &all_defines);
479483

480484
all_incdirs.sort();
485+
let user_incdirs: Vec<PathBuf> = args.incdir.iter().map(PathBuf::from).collect();
481486
let all_incdirs: IndexSet<PathBuf> = if emit_incdirs {
482-
all_incdirs.into_iter().map(|p| p.to_path_buf()).collect()
487+
all_incdirs
488+
.into_iter()
489+
.map(|p| p.to_path_buf())
490+
.chain(user_incdirs.iter().cloned())
491+
.collect()
483492
} else {
484493
IndexSet::new()
485494
};
@@ -530,6 +539,7 @@ fn emit_template(
530539
.iter()
531540
.map(|p| p.to_path_buf())
532541
.collect::<IndexSet<_>>();
542+
incdirs.extend(user_incdirs.iter().cloned());
533543
incdirs.sort();
534544
incdirs
535545
},

0 commit comments

Comments
 (0)