From f1506383ce224f541c93f42a04189107fc202bdd Mon Sep 17 00:00:00 2001 From: jihoonahn Date: Sun, 10 Dec 2023 18:15:50 +0900 Subject: [PATCH] Add Template --- Templates/Project/Project.stencil | 13 +++++++++++++ Templates/Project/Project.swift | 18 ++++++++++++++++++ Templates/Workspace/Workspace.stencil | 13 +++++++++++++ Templates/Workspace/Workspace.swift | 18 ++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 Templates/Project/Project.stencil create mode 100644 Templates/Project/Project.swift create mode 100644 Templates/Workspace/Workspace.stencil create mode 100644 Templates/Workspace/Workspace.swift diff --git a/Templates/Project/Project.stencil b/Templates/Project/Project.stencil new file mode 100644 index 00000000..0f04de27 --- /dev/null +++ b/Templates/Project/Project.stencil @@ -0,0 +1,13 @@ +import ProjectDescription +import TuistUI + +let project = {{ name }}().makeModule() + +struct {{ name }}: Module { + + var body: some Module { + Project { + + } + } +} diff --git a/Templates/Project/Project.swift b/Templates/Project/Project.swift new file mode 100644 index 00000000..47e32a18 --- /dev/null +++ b/Templates/Project/Project.swift @@ -0,0 +1,18 @@ +import ProjectDescription + +private let pathAttribute = Template.Attribute.optional("path", default: "Projects") +private let nameAttribute = Template.Attribute.required("name") + +private let template = Template( + description: "A template for a new project module", + attributes: [ + pathAttribute, + nameAttribute + ], + items: [ + .file( + path: "\(pathAttribute)/\(nameAttribute)/Project.swift", + templatePath: "Project.stencil" + ) + ] +) diff --git a/Templates/Workspace/Workspace.stencil b/Templates/Workspace/Workspace.stencil new file mode 100644 index 00000000..e96eee9d --- /dev/null +++ b/Templates/Workspace/Workspace.stencil @@ -0,0 +1,13 @@ +import ProjectDescription +import TuistUI + +let project = {{ name }}().makeModule() + +struct {{ name }}: Module { + + var body: some Module { + Workspace { + + } + } +} diff --git a/Templates/Workspace/Workspace.swift b/Templates/Workspace/Workspace.swift new file mode 100644 index 00000000..823aec32 --- /dev/null +++ b/Templates/Workspace/Workspace.swift @@ -0,0 +1,18 @@ +import ProjectDescription + +private let pathAttribute = Template.Attribute.optional("path", default: "Projects") +private let nameAttribute = Template.Attribute.required("name") + +private let template = Template( + description: "A template for a new workspace module", + attributes: [ + pathAttribute, + nameAttribute + ], + items: [ + .file( + path: "\(pathAttribute)/\(nameAttribute)/Workspace.swift", + templatePath: "Workspace.stencil" + ) + ] +)