bytebraise/python/fixups/
methods.rs

1pub fn fixup_oe_import(code: &mut String) {
2    let mut lines = code.lines().map(String::from).collect::<Vec<_>>();
3    let trimmed_lines = code.lines().map(|line| line.trim()).collect::<Vec<_>>();
4
5    let sys_line = trimmed_lines
6        .iter()
7        .position(|line| line == &"import sys")
8        .unwrap();
9    lines.insert(sys_line, String::from("    import os"));
10
11    let path_line = trimmed_lines
12        .iter()
13        .position(|line| line.starts_with("sys.path[0:0]") && line.contains("bbpath"))
14        .unwrap();
15
16    let s = path_line + 2;
17    lines.splice(
18        s..s,
19        vec![
20            String::from(
21                r#"    sys.path.insert(0, os.path.join(d.getVar("COREBASE"), "bitbake", "lib"))"#,
22            ),
23            String::from("    import bb"),
24        ],
25    );
26
27    *code = lines.join("\n");
28}