Update doc

This commit is contained in:
Aoran Zeng 2024-09-10 07:33:12 +08:00
parent 8ab5f5fb40
commit b7410d96ad
No known key found for this signature in database
GPG Key ID: 8F8BA8488E10ED98

View File

@ -6,7 +6,7 @@
! Contributors : Nul None <nul@none.org>
! |
! Created On : <2024-08-19>
! Last Modified : <2024-08-22>
! Last Modified : <2024-09-10>
! ---------------------------------------------------------- -->
# Write A Recipe Even If You Don't Know C
@ -15,19 +15,23 @@
**`chsrc` 不仅是一个命令行工具同时也是一个换源框架它甚至使你能够在不了解C语言的情况下编写出新的换源方法(recipe)。**
<br>
我鼓励你为新的软件添加换源支持,因为通过 `chsrc` 这将非常简单,你的贡献也将非常有价值。
1. 本项目采用`GPLv3+`协议,是真正的**自由软件**,而非仅仅是开源软件
2. 代码规范灵活遵循`GNU`标准(若标准干扰了可维护性,则并不采纳)
3. 高度模块化,目录结构清晰易懂
4. 易于将`shell`脚本转换为等价的`recipe`
5. 已有大量`recipe`可提供参考
6. 提供了 [recipe template] 供直接使用
4. 极易构建仅有一个C语言编译器即可
5. 易于将`shell`脚本转换为等价的`recipe`
6. 已有大量`recipe`可提供参考,并提供了 [recipe template] 供直接使用
7. 提供持续关注镜像站可用性的协作平台:
1. https://github.com/RubyMetric/chsrc/wiki
2. https://github.com/RubyMetric/chsrc/discussions
<br>
成功案例: [Armbian](../src/recipe/os/APT/Armbian.c)
<br>
@ -42,12 +46,12 @@
1. `target`: 所要换源的目标
2. `category`: 是 `target category`写,即 `target` 所属的类别,可以是 **编程语言****操作系统****软件** 三类之一
2. `category`: 是 `target category`写,即 `target` 所属的类别,可以是 **编程语言****操作系统****软件** 三类之一
1. 在目录中,三者分别为 `lang`, `os`, `ware`
2. 在代码中,三者前缀分别为 `pl`, `os`, `wr`
2. `mirror`: 是 `mirror site`写,指镜像站,如清华大学开源软件镜像站
2. `mirror`: 是 `mirror site`写,指镜像站,如清华大学开源软件镜像站
3. `source`: 该 `target` 所能换的具体的源,由 `mirror` 提供服务
4. `recipe`: 是为一个 `target` 定义的具体换源方法,请参考 `src` 目录中的 `recipe` 目录
@ -78,11 +82,13 @@
<br>
# 不要制造UFO
# 开发准则
开发准则:
1. Convention over Configuration
2. [NO UFO 原则: 不要乱丢文件到$HOME等目录尤其是使用各种隐晦的文件名](https://www.yuque.com/ccmywish/blog/no-ufo)
1. 代码高度可移植
2. Convention over Configuration
3. [NO UFO 原则: 不要乱丢文件到$HOME等目录尤其是使用各种隐晦的文件名](https://www.yuque.com/ccmywish/blog/no-ufo)
`chsrc` 主程序不提供配置文件,不提供数据文件,干净无污染。那么在实现 `recipe` 的时候,除了备份文件外,也不要污染用户环境。