actr_cli/templates/swift/
echo.rs

1use crate::error::Result;
2use crate::templates::ProjectTemplate;
3use std::collections::HashMap;
4use std::path::Path;
5
6pub fn load(files: &mut HashMap<String, String>) -> Result<()> {
7    let fixtures_root = Path::new(env!("CARGO_MANIFEST_DIR")).join("fixtures");
8
9    // Load template files from disk with placeholders in path
10    ProjectTemplate::load_file(
11        &fixtures_root.join("swift/project.yml.hbs"),
12        files,
13        "project.yml",
14    )?;
15    ProjectTemplate::load_file(
16        &fixtures_root.join("swift/Actr.toml.hbs"),
17        files,
18        "Actr.toml",
19    )?;
20    ProjectTemplate::load_file(
21        &fixtures_root.join("swift/gitignore.hbs"),
22        files,
23        ".gitignore",
24    )?;
25    ProjectTemplate::load_file(
26        &fixtures_root.join("swift/Info.plist.hbs"),
27        files,
28        "{{PROJECT_NAME_PASCAL}}/Info.plist",
29    )?;
30    ProjectTemplate::load_file(
31        &fixtures_root.join("swift/App.swift.hbs"),
32        files,
33        "{{PROJECT_NAME_PASCAL}}/{{PROJECT_NAME_PASCAL}}App.swift",
34    )?;
35    ProjectTemplate::load_file(
36        &fixtures_root.join("swift/ContentView.swift.hbs"),
37        files,
38        "{{PROJECT_NAME_PASCAL}}/ContentView.swift",
39    )?;
40    ProjectTemplate::load_file(
41        &fixtures_root.join("swift/ActrService.swift.init.hbs"),
42        files,
43        "{{PROJECT_NAME_PASCAL}}/ActrService.swift",
44    )?;
45    ProjectTemplate::load_file(
46        &fixtures_root.join("swift/ActrService+Echo.swift.hbs"),
47        files,
48        "{{PROJECT_NAME_PASCAL}}/ActrService+Echo.swift",
49    )?;
50    // Load fixture files (no placeholders, fixed paths)
51    ProjectTemplate::load_file(
52        &fixtures_root.join("echo-service/echo.proto"),
53        files,
54        "protos/echo.proto",
55    )?;
56    files.insert(
57        "protos/client.proto".to_string(),
58        "syntax = \"proto3\";\n\npackage {{PROJECT_NAME_SNAKE}};\n".to_string(),
59    );
60    ProjectTemplate::load_file(
61        &fixtures_root.join("swift/Assets.xcassets/Contents.json"),
62        files,
63        "{{PROJECT_NAME_PASCAL}}/Assets.xcassets/Contents.json",
64    )?;
65    ProjectTemplate::load_file(
66        &fixtures_root.join("swift/Assets.xcassets/AccentColor.colorset/Contents.json"),
67        files,
68        "{{PROJECT_NAME_PASCAL}}/Assets.xcassets/AccentColor.colorset/Contents.json",
69    )?;
70    ProjectTemplate::load_file(
71        &fixtures_root.join("swift/Assets.xcassets/AppIcon.appiconset/Contents.json"),
72        files,
73        "{{PROJECT_NAME_PASCAL}}/Assets.xcassets/AppIcon.appiconset/Contents.json",
74    )?;
75
76    Ok(())
77}