devnote-dev / devnote-dev/geode

Project Templates

未關閉
#1 0 則留言 0 個 reaction 已指派 1 人 已被 @devnote-dev 認領 在 GitHub 檢視
enhancement help wanted
主要語言
Crystal
星號
13
分支
3
PR 合併指標
30 天內沒有已合併 PR

描述

Project templates will be an improved design of the existing `crystal init` command to build default and custom project file structures. An old, experimental concept of this exists in the project which doesn't have a clear design or structure. This issue provides the design and scope for this, with subsequent issues & PRs to follow the implementation.

### Project-level setup
###### (note: these are all mock concepts that probably need to be finalised).

In `shard.yml`: custom field `project-templates: path/to/dir`

In project directory:

```yaml
# templates.yml
namespace: root-name
author: ...
version: ...
source: ...
files:
- a/b/c
- d/e/f

templates:
- name: foo
control: path/to/control_file.lua
```

Control files will *control* how projects are setup according to the template. Scripts are executed in a Lua sandbox with limited functions.

```lua
-- control_file.lua
println "welcome to the setup"
print "enter your project name: "
name = get_str_input() -- also available: 'get_bool_input()' & 'get_int_input()'

make_dir "src"
write_file("src/" .. name .. ".cr")
...
```

Full list of functions TBD.

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。