/** ------------------------------------------------------------ * SPDX-License-Identifier: GPL-3.0-or-later * ------------------------------------------------------------- * File Name : recipe-template.c * File Authors : Aoran Zeng * Contributors : Nil Null * | * Created On : <2024-08-09> * Last Modified : <2024-11-22> * ------------------------------------------------------------- * 本文件作为一个通用模板: * * 为一个【换源目标(target)】定义具体的【换源方法(recipe)】 * * 模版中: * 为该换源目标的名称 * 为该换源目标的类别,仅有3类: pl, os, wr * 分别对应3个子目录: lang, os, ware * ------------------------------------------------------------*/ /* 模版文件内容从下方第30行正式开始 */ /** ------------------------------------------------------------ * SPDX-License-Identifier: GPL-3.0-or-later * ------------------------------------------------------------- * File Name : .c * File Authors : Nil Null 尼尔闹先生 * Contributors : Nul None 怒了馕女士 * | * Created On : <2025-01-01> https://www.yuque.com/ccmywish/blog/nil-null-and-nul-none * Last Modified : <2025-01-01> 请更新文件标头 * ------------------------------------------------------------*/ /** * 定义专服务于该target的镜像站,该例数据为虚拟填充 */ static MirrorSite_t RubyMetric = {"rbmt", // chsrc set rbmt "RubyMetric", // 该镜像站的缩写 "RubyMetric.com", // 该镜像站的全名 "https://rubymetirc.com", // 镜像站首页 // 镜像站某个较大的可下载物的下载链接,用于测速 "https://rubymetirc.com/target/aws/aws-sdk-go/@v/v1.45.2.zip"}; /** * @update 2025-12-31 * @note 该target的各个源地址,该例数据为虚拟填充 */ static Source_t __sources[] = { {&UpstreamProvider, "上游地址,若维护者暂时未知,可填NULL,这个主要用于reset"}, {&RubyMetric, "https://rubymetirc.com/target"}, {&RubyInstaller, "https://rubyinstaller.cn/target"}, {&Gitee, "https://gitee.com/RubyMetric/chsrc"}, {&GitHub, "https://github.com/RubyMetric/chsrc"} }; def_sources_n(_); /** * @required 非必需 * * 用于 chsrc get */ void __getsrc (char *option) { // chsrc get } /** * @required 必需 * @consult 写明换源实现的参考地址 * * 用于 chsrc set */ void __setsrc (char *option) { /* 下面这行是必须的,注入source变量 */ chsrc_yield_source_and_confirm (_); /* 具体的换源步骤,如调用第三方命令... */ /* 最后总结输出 */ ProgMode_ChgType = ChgType_; chsrc_conclude (&source); } /** * @required 非必需 * * 用于 chsrc reset */ void __resetsrc (char *option) { /* 往往统一在 _setsrc() 中实现,直接调用即可 */ // __setsrc (option); } /** * @required 非必需 * * 用于 chsrc ls */ Feature_t __feat (char *option) { Feature_t f = {0}; f.can_get = true; f.can_reset = false; f.cap_locally = PartiallyCan; f.cap_locally_explain = "具体说明是否支持项目级换源..."; f.can_english = false; f.can_user_define = false; f.note = "备注说明..."; return f; } // 定义此 target,参考 "source.h" // 下列情形多选1 def_target(_); def_target_gsr(_); def_target_gsf(_); def_target_gsrf(_); def_target_s(_);