Update ware recipes using framework v2

This commit is contained in:
Aoran Zeng 2025-08-10 09:18:19 +08:00
parent 6c86e24b9d
commit fd0907bf4b
No known key found for this signature in database
GPG Key ID: 8F8BA8488E10ED98
11 changed files with 306 additions and 337 deletions

View File

@ -142,8 +142,6 @@ typedef struct Target_t
void (*setfn) (char *option);
void (*resetfn) (char *option);
Feature_t (*featfn) (char *option);
Source_t sources;
size_t sources_n;

View File

@ -1,35 +1,51 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Yangmoooo <yangmoooo@outlook.com>
* | yongxiang <1926885268@qq.com>
* |
* Created On : <2023-09-10>
* Last Modified : <2025-07-14>
* ------------------------------------------------------------*/
#include "rawstr4c.h"
#include "rawstr4c.h"
/**
* @update 2025-07-14
* @note setsrc函数中补充完整
*/
static Source_t wr_anaconda_sources[] =
def_target(wr_anaconda);
void
wr_anaconda_prelude ()
{
{&UpstreamProvider, "https://repo.anaconda.com", NULL},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn", NULL},
{&Bjtu, "https://mirror.bjtu.edu.cn", NULL},
{&Nju, "https://mirror.nju.edu.cn", NULL},
{&Bfsu, "https://mirrors.bfsu.edu.cn", NULL},
{&Zju, "https://mirrors.zju.edu.cn", NULL},
{&Pku, "https://mirrors.pku.edu.cn", NULL},
{&NJTech, "https://mirrors.njtech.edu.cn", NULL},
{&Ustc, "https://mirrors.ustc.edu.cn", NULL},
{&Sjtug_Siyuan, "https://mirror.sjtu.edu.cn", NULL},
{&Lzuoss, "https://mirror.lzu.edu.cn", NULL}
};
def_sources_n(wr_anaconda);
use_this(wr_anaconda);
chef_set_created_on (this, "2023-09-10");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-14");
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 2,
"Yangmoooo", "yangmoooo@outlook.com",
"yongxiang", "1926885268@qq.com");
chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = false;
this.note = "无法自定义源, 因为这些链接将会在setsrc函数中补充完整";
def_upstream("https://repo.anaconda.com");
def_sources_begin()
{&upstream, "https://repo.anaconda.com", DelegateToUpstream},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn", DelegateToMirror},
{&Bjtu, "https://mirror.bjtu.edu.cn", DelegateToMirror},
{&Nju, "https://mirror.nju.edu.cn", DelegateToMirror},
{&Bfsu, "https://mirrors.bfsu.edu.cn", DelegateToMirror},
{&Zju, "https://mirrors.zju.edu.cn", DelegateToMirror},
{&Pku, "https://mirrors.pku.edu.cn", DelegateToMirror},
{&NJTech, "https://mirrors.njtech.edu.cn", DelegateToMirror},
{&Ustc, "https://mirrors.ustc.edu.cn", DelegateToMirror},
{&Sjtug_Siyuan, "https://mirror.sjtu.edu.cn", DelegateToMirror},
{&Lzuoss, "https://mirror.lzu.edu.cn", DelegateToMirror}
def_sources_end()
}
void
@ -45,7 +61,8 @@ wr_anaconda_getsrc (char *option)
void
wr_anaconda_setsrc (char *option)
{
chsrc_yield_source_and_confirm (wr_anaconda);
use_this(wr_anaconda);
Source_t source = chsrc_yield_source_and_confirm (this, option);
char *w = xy_str_gsub (RAWSTR_wr_anaconda_condarc, "@1@", source.url);
@ -77,20 +94,3 @@ wr_anaconda_setsrc (char *option)
chsrc_determine_chgtype (ChgType_SemiAuto);
chsrc_conclude (&source);
}
Feature_t
wr_anaconda_feat (char *option)
{
Feature_t f = {0};
f.can_get = true;
f.can_reset = false;
f.can_english = false;
f.can_user_define = false;
return f;
}
def_target_gsf (wr_anaconda);

View File

@ -1,24 +1,42 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Nil Null <nil@null.org>
* Created On : <2024-06-08>
* Last Modified : <2025-07-13>
* ------------------------------------------------------------*/
/**
* @update 2025-07-13
*/
static Source_t wr_cocoapods_sources[] =
def_target(wr_cocoapods);
void
wr_cocoapods_prelude ()
{
{&UpstreamProvider, NULL, NULL},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git", NULL},
{&Bfsu, "https://mirrors.bfsu.edu.cn/git/CocoaPods/Specs.git", NULL},
{&Nju, "https://mirror.nju.edu.cn/git/CocoaPods/Specs.git", NULL},
{&Nyist, "https://mirror.nyist.edu.cn/git/CocoaPods/Specs.git", NULL}
};
def_sources_n(wr_cocoapods);
use_this(wr_cocoapods);
chef_set_created_on (this, "2024-06-08");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-13");
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Nil Null", "nil@null.org");
// chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = true;
this.note = NULL;
def_upstream("https://github.com/CocoaPods/Specs.git");
def_sources_begin()
{&upstream, "https://github.com/CocoaPods/Specs.git", DelegateToUpstream},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git", DelegateToMirror},
{&Bfsu, "https://mirrors.bfsu.edu.cn/git/CocoaPods/Specs.git", DelegateToMirror},
{&Nju, "https://mirror.nju.edu.cn/git/CocoaPods/Specs.git", DelegateToMirror},
{&Nyist, "https://mirror.nyist.edu.cn/git/CocoaPods/Specs.git", DelegateToMirror}
def_sources_end()
}
/**
@ -27,7 +45,8 @@ def_sources_n(wr_cocoapods);
void
wr_cocoapods_setsrc (char *option)
{
chsrc_yield_source_and_confirm (wr_cocoapods);
use_this(wr_cocoapods);
Source_t source = chsrc_yield_source_and_confirm (this, option);
chsrc_note2 ("请手动执行以下命令:");
p("cd ~/.cocoapods/repos");
@ -43,20 +62,3 @@ wr_cocoapods_setsrc (char *option)
chsrc_determine_chgtype (ChgType_Manual);
chsrc_conclude (&source);
}
Feature_t
wr_cocoapods_feat (char *option)
{
Feature_t f = {0};
f.can_get = false;
f.can_reset = false;
f.can_english = false;
f.can_user_define = true;
return f;
}
def_target_sf (wr_cocoapods);

View File

@ -1,13 +1,5 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : happy game <happygame1024@gmail.com>
* | Aoran Zeng <ccmywish@qq.com>
* Contributors : Nil Null <nil@null.org>
* |
* Created On : <2024-06-08>
* Major Revision : 2
* Last Modified : <2025-07-14>
* ------------------------------------------------------------*/
#include "rawstr4c.h"
@ -27,22 +19,41 @@ Fit2Cloud =
{SKIP, ToFill, ToFill, NULL, ROUGH}
};
/**
* @update 2025-07-14
*
* @consult https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
*/
static Source_t wr_dockerhub_sources[] =
def_target(wr_dockerhub);
void
wr_dockerhub_prelude ()
{
{&UpstreamProvider, NULL, NULL},
// {&Ustc, "https://docker.mirrors.ustc.edu.cn/", NULL},
use_this(wr_dockerhub);
// https://github.com/DaoCloud/public-image-mirror
{&DaoCloud, "https://docker.m.daocloud.io", NULL},
{&Fit2Cloud, "https://docker.1panel.live", NULL}
};
chef_set_created_on (this, "2024-06-08");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-14");
def_sources_n(wr_dockerhub);
chef_set_authors (this, 2,
"happy game", "happygame1024@gmail.com",
"Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Nil Null", "nil@null.org");
chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = true;
this.note = NULL;
def_upstream("https://hub.docker.com/");
def_sources_begin()
{&upstream, "https://hub.docker.com/", DelegateToUpstream},
{&DaoCloud, "https://docker.m.daocloud.io", DelegateToMirror},
{&Fit2Cloud, "https://docker.1panel.live", DelegateToMirror}
def_sources_end()
}
#define WR_DockerHub_ConfigFile "/etc/docker/daemon.json"
@ -69,7 +80,8 @@ void
wr_dockerhub_setsrc (char *option)
{
chsrc_ensure_root ();
chsrc_yield_source_and_confirm (wr_dockerhub);
use_this(wr_dockerhub);
Source_t source = chsrc_yield_source_and_confirm (this, option);
if (xy_on_linux || xy_on_bsd)
{
@ -138,25 +150,3 @@ wr_dockerhub_setsrc (char *option)
chsrc_determine_chgtype (ChgType_SemiAuto);
chsrc_conclude (&source);
}
Feature_t
wr_dockerhub_feat (char *option)
{
Feature_t f = {0};
f.can_get = true;
f.can_reset = false;
f.cap_locally = CanNot;
f.cap_locally_explain = NULL;
f.can_english = false;
f.can_user_define = true;
f.note = NULL;
return f;
}
def_target_gsf(wr_dockerhub);

View File

@ -1,10 +1,5 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Nil Null <nil@null.org>
* Created On : <2023-10-10>
* Last Modified : <2025-07-13>
* ------------------------------------------------------------*/
static MirrorSite_t EmacsChina =
@ -14,49 +9,55 @@ static MirrorSite_t EmacsChina =
{SKIP, ToFill, ToFill, NULL, ROUGH}
};
/**
* @update 2025-07-13
* @note Emacs用户往往只需要一次性换源 chsrc
*/
Source_t wr_emacs_sources[] =
def_target(wr_emacs);
void
wr_emacs_prelude ()
{
{&UpstreamProvider, NULL, NULL},
{&MirrorZ, "https://help.mirrors.cernet.edu.cn/elpa/", NULL},
{&Sjtug_Zhiyuan, "https://mirrors.sjtug.sjtu.edu.cn/docs/emacs-elpa", NULL},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/help/elpa/", NULL},
{&Bfsu, "https://mirrors.bfsu.edu.cn/help/elpa/", NULL},
{&Ustc, "https://mirrors.ustc.edu.cn/help/elpa.html", NULL},
{&Zju, "https://mirrors.zju.edu.cn/docs/elpa/", NULL},
{&EmacsChina, "https://elpamirror.emacs-china.org/", NULL}
};
def_sources_n(wr_emacs);
use_this(wr_emacs);
chef_set_created_on (this, "2023-10-10");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-13");
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Nil Null", "nil@null.org");
// chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = false;
this.note = "Emacs用户往往只需要一次性换源只会极少次调用 chsrc我们只给用户提供文档";
def_upstream("https://elpa.gnu.org/");
def_sources_begin()
{&upstream, "https://elpa.gnu.org/", DelegateToUpstream},
{&MirrorZ, "https://help.mirrors.cernet.edu.cn/elpa/", DelegateToMirror},
{&Sjtug_Zhiyuan, "https://mirrors.sjtug.sjtu.edu.cn/docs/emacs-elpa", DelegateToMirror},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/help/elpa/", DelegateToMirror},
{&Bfsu, "https://mirrors.bfsu.edu.cn/help/elpa/", DelegateToMirror},
{&Ustc, "https://mirrors.ustc.edu.cn/help/elpa.html", DelegateToMirror},
{&Zju, "https://mirrors.zju.edu.cn/docs/elpa/", DelegateToMirror},
{&EmacsChina, "https://elpamirror.emacs-china.org/", DelegateToMirror}
def_sources_end()
}
void
wr_emacs_setsrc (char *option)
{
chsrc_yield_source_and_confirm (wr_emacs);
use_this(wr_emacs);
Source_t source = chsrc_yield_source_and_confirm (this, option);
chsrc_note2 ("Emacs换源涉及Elisp需要手动查阅并换源:");
chsrc_note2 ("Emacs换源涉及Elisp, 需要手动查阅并换源:");
p (source.url);
chsrc_determine_chgtype (ChgType_Manual);
chsrc_conclude (&source);
}
Feature_t
wr_emacs_feat (char *option)
{
Feature_t f = {0};
f.can_get = false;
f.can_reset = false;
f.can_english = false;
f.can_user_define = false;
return f;
}
def_target_sf(wr_emacs);

View File

@ -19,7 +19,6 @@ wr_flathub_prelude ()
chef_set_contributors (this, 1,
"Jialin Lyu", "jialinlvcn@aliyun.com");
chef_has_getfn();
chef_has_setfn();
chef_has_resetsrc();
@ -29,11 +28,7 @@ wr_flathub_prelude ()
this.can_user_define = true;
this.note = "对Flathub目标进行测速的文件非常小测速效果严重失真若你知道可供测速的URL欢迎参与贡献: chsrc issue";
def_upstream("https://flathub.org/repo");
def_sources_begin()
{&upstream, "https://flathub.org/repo", DelegateToUpstream},
{&Sjtug_Siyuan, "https://mirror.sjtu.edu.cn/flathub", DelegateToMirror},

View File

@ -1,23 +1,39 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Nil Null <nil@null.org>
* Created On : <2023-09-11>
* Last Modified : <2025-07-13>
* ------------------------------------------------------------*/
/**
* @update 2025-07-13
*
* @note , guixcn
*/
static Source_t wr_guix_sources[] =
def_target(wr_guix);
void
wr_guix_prelude ()
{
{&UpstreamProvider, NULL, NULL},
{&Sjtug_Zhiyuan, "https://mirror.sjtu.edu.cn/git/guix.git", DelegateToMirror}
};
def_sources_n(wr_guix);
use_this(wr_guix);
chef_set_created_on (this, "2023-09-11");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-13");
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Nil Null", "nil@null.org");
// chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = false;
this.note = "目前只有一个源, guixcn 的源不知道是否可用";
def_upstream("https://git.savannah.gnu.org/git/guix.git");
def_sources_begin()
{&upstream, "https://git.savannah.gnu.org/git/guix.git", DelegateToUpstream},
{&Sjtug_Zhiyuan, "https://mirror.sjtu.edu.cn/git/guix.git", DelegateToMirror}
def_sources_end()
}
/**
@ -26,7 +42,8 @@ def_sources_n(wr_guix);
void
wr_guix_setsrc (char *option)
{
chsrc_yield_source_and_confirm (wr_guix);
use_this(wr_guix);
Source_t source = chsrc_yield_source_and_confirm (this, option);
char *file = xy_strjoin (3, "(list (channel\n"
" (inherit (car %default-channels))\n"
@ -38,20 +55,3 @@ wr_guix_setsrc (char *option)
chsrc_determine_chgtype (ChgType_Manual);
chsrc_conclude (&source);
}
Feature_t
wr_guix_feat (char *option)
{
Feature_t f = {0};
f.can_get = false;
f.can_reset = false;
f.can_english = false;
f.can_user_define = false;
return f;
}
def_target_sf(wr_guix);

View File

@ -1,36 +1,44 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Word2VecT <tangzinan@bupt.edu.cn>
* Created On : <2023-09-10>
* Major Revision : 3
* Last Modified : <2025-07-14>
* ------------------------------------------------------------*/
#include "rawstr4c.h"
/**
* @update 2025-07-13
*
* @note setsrc函数中补充完整
*/
static Source_t wr_homebrew_sources[] =
def_target(wr_homebrew);
void
wr_homebrew_prelude ()
{
{&UpstreamProvider, NULL, NULL},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/", DelegateToMirror},
{&Bfsu, "https://mirrors.bfsu.edu.cn/", DelegateToMirror},
{&Nju, "https://mirror.nju.edu.cn/", DelegateToMirror},
{&Nyist, "https://mirror.nyist.edu.cn/", DelegateToMirror},
use_this(wr_homebrew);
/* 注释原因: 这两者和其他镜像站URL补全结果不一样(2025-07-13) */
// {&Zju, "https://mirrors.zju.edu.cn/", DelegateToMirror},
// {&Cqu, "https://mirrors.cqu.edu.cn/", DelegateToMirror},
chef_set_created_on (this, "2023-09-10");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-13");
/* 注释原因: 该源已不存在(2025-07-13) */
// {&Sustech, "https://mirrors.sustech.edu.cn/", DelegateToMirror}
};
def_sources_n(wr_homebrew);
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Word2VecT", "tangzinan@bupt.edu.cn");
chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = true;
this.can_user_define = false;
this.note = "该换源通过写入环境变量实现若多次换源请手动清理profile文件";
def_upstream("https://github.com/Homebrew/brew.git");
def_sources_begin()
{&upstream, "https://github.com/Homebrew/brew.git", DelegateToUpstream},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/", DelegateToMirror},
{&Bfsu, "https://mirrors.bfsu.edu.cn/", DelegateToMirror},
{&Nju, "https://mirror.nju.edu.cn/", DelegateToMirror},
{&Nyist, "https://mirror.nyist.edu.cn/", DelegateToMirror}
def_sources_end()
}
void
@ -50,7 +58,8 @@ wr_homebrew_getsrc (char *option)
void
wr_homebrew_setsrc (char *option)
{
chsrc_yield_source_and_confirm (wr_homebrew);
use_this(wr_homebrew);
Source_t source = chsrc_yield_source_and_confirm (this, option);
char *w = xy_str_gsub (RAWSTR_wr_homebrew_config_in_bash, "@1@", source.url);
@ -77,26 +86,3 @@ wr_homebrew_setsrc (char *option)
chsrc_conclude (&source);
chsrc_alert2 ("请重启终端使Homebrew环境变量生效");
}
Feature_t
wr_homebrew_feat (char *option)
{
Feature_t f = {0};
f.can_get = true;
f.can_reset = false;
f.cap_locally = CanNot;
f.cap_locally_explain = NULL;
f.can_english = true;
/* 该换源方案中URL存在拼凑因此不能让用户手动使用某URL来换源 */
f.can_user_define = false;
f.note = "该换源通过写入环境变量实现若多次换源请手动清理profile文件";
return f;
}
def_target_gsf(wr_homebrew);

View File

@ -1,29 +1,45 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Nil Null <nil@null.org>
* Created On : <2023-09-26>
* Last Modified : <2025-07-13>
* ------------------------------------------------------------*/
/**
* @update 2025-07-13
*
* @note setsrc函数中补充完整
*/
static Source_t wr_nix_sources[] =
def_target(wr_nix);
void
wr_nix_prelude ()
{
{&UpstreamProvider, NULL, NULL},
{&MirrorZ, "https://mirrors.cernet.edu.cn/nix-channels/", NULL},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/nix-channels/", NULL},
{&Nju, "https://mirror.nju.edu.cn/nix-channels/", NULL},
{&Ustc, "https://mirrors.ustc.edu.cn/nix-channels/", NULL},
{&Sjtug_Siyuan, "https://mirror.sjtu.edu.cn/nix-channels/", NULL},
{&Bfsu, "https://mirrors.bfsu.edu.cn/nix-channels/", NULL},
{&Iscas, "https://mirror.iscas.ac.cn/nix-channels/", NULL}
};
def_sources_n(wr_nix);
use_this(wr_nix);
chef_set_created_on (this, "2023-09-26");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-13");
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Nil Null", "nil@null.org");
// chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = false;
this.note = "不可自动换源因为链接将会在setsrc函数中补充完整";
def_upstream("https://channels.nixos.org/");
def_sources_begin()
{&upstream, "https://channels.nixos.org/", DelegateToUpstream},
{&MirrorZ, "https://mirrors.cernet.edu.cn/nix-channels/", DelegateToMirror},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/nix-channels/", DelegateToMirror},
{&Nju, "https://mirror.nju.edu.cn/nix-channels/", DelegateToMirror},
{&Ustc, "https://mirrors.ustc.edu.cn/nix-channels/", DelegateToMirror},
{&Sjtug_Siyuan, "https://mirror.sjtu.edu.cn/nix-channels/", DelegateToMirror},
{&Bfsu, "https://mirrors.bfsu.edu.cn/nix-channels/", DelegateToMirror},
{&Iscas, "https://mirror.iscas.ac.cn/nix-channels/", DelegateToMirror}
def_sources_end()
}
void
@ -42,7 +58,8 @@ wr_nix_setsrc (char *option)
{
wr_nix_check_cmd ();
chsrc_yield_source_and_confirm (wr_nix);
use_this(wr_nix);
Source_t source = chsrc_yield_source_and_confirm (this, option);
char *cmd = xy_strjoin (3, "nix-channel --add ", source.url, "nixpkgs-unstable nixpkgs");
chsrc_run (cmd, RunOpt_Default);
@ -63,19 +80,3 @@ wr_nix_setsrc (char *option)
chsrc_determine_chgtype (ChgType_SemiAuto);
chsrc_conclude (&source);
}
Feature_t
wr_nix_feat (char *option)
{
Feature_t f = {0};
f.can_get = false;
f.can_reset = false;
f.can_english = false;
f.can_user_define = false;
return f;
}
def_target_sf (wr_nix);

View File

@ -1,44 +1,55 @@
/** ------------------------------------------------------------
* SPDX-License-Identifier: GPL-3.0-or-later
* -------------------------------------------------------------
* File Authors : Aoran Zeng <ccmywish@qq.com>
* Contributors : Mikachu2333 <mikachu.23333@zohomail.com>
* Created On : <2023-09-10>
* Last Modified : <2025-07-28>
*
* MiKTeX TeX Live LaTeX
* ------------------------------------------------------------*/
/**
* @update 2025-07-28
*/
static Source_t wr_tex_sources[] =
def_target(wr_tex);
void
wr_tex_prelude ()
{
{&UpstreamProvider, NULL, NULL},
{&MirrorZ, "https://mirrors.cernet.edu.cn/CTAN/systems/texlive/tlnet", NULL},
use_this(wr_tex);
{&Sjtug_Zhiyuan, "https://mirrors.sjtug.sjtu.edu.cn/ctan/systems/texlive/tlnet",
"https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
chef_set_created_on (this, "2023-09-10");
chef_set_last_updated (this, "2025-08-09");
chef_set_sources_last_updated (this, "2025-07-28");
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
chef_set_authors (this, 1, "Aoran Zeng", "ccmywish@qq.com");
chef_set_chef (this, NULL, NULL);
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 1,
"Mikachu2333", "mikachu.23333@zohomail.com");
{&Bfsu, "https://mirrors.bfsu.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.bfsu.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
chef_has_getfn();
chef_has_setfn();
// chef_has_resetsrc();
this.cap_locally = CanNot;
this.cap_locally_explain = NULL;
this.can_english = false;
this.can_user_define = true;
this.note = NULL;
{&Bjtu, "https://mirror.bjtu.edu.cn/ctan/systems/texlive/tlnet",
"https://mirror.bjtu.edu.cn/ctan/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Lzuoss, "https://mirror.lzu.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirror.lzu.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Jlu, "https://mirrors.jlu.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.jlu.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Sustech, "https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"}
};
def_sources_n(wr_tex);
def_upstream("https://ctan.org/tex-archive/systems/texlive/tlnet");
def_sources_begin()
{&upstream, "https://ctan.org/tex-archive/systems/texlive/tlnet", DelegateToUpstream},
{&MirrorZ, "https://mirrors.cernet.edu.cn/CTAN/systems/texlive/tlnet", DelegateToMirror},
{&Sjtug_Zhiyuan, "https://mirrors.sjtug.sjtu.edu.cn/ctan/systems/texlive/tlnet",
"https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Bfsu, "https://mirrors.bfsu.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.bfsu.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Bjtu, "https://mirror.bjtu.edu.cn/ctan/systems/texlive/tlnet",
"https://mirror.bjtu.edu.cn/ctan/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Lzuoss, "https://mirror.lzu.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirror.lzu.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Jlu, "https://mirrors.jlu.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.jlu.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"},
{&Sustech, "https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet",
"https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/archive/fandol.tar.xz"}
def_sources_end()
}
void
@ -79,7 +90,8 @@ wr_tex_setsrc (char *option)
bool tlmgr_exist, mpm_exist;
wr_tex_check_cmd (&tlmgr_exist, &mpm_exist);
chsrc_yield_source_and_confirm (wr_tex);
use_this(wr_tex);
Source_t source = chsrc_yield_source_and_confirm (this, option);
char *cmd = NULL;
@ -99,20 +111,3 @@ wr_tex_setsrc (char *option)
chsrc_determine_chgtype (ChgType_Untested);
chsrc_conclude (&source);
}
Feature_t
wr_tex_feat (char *option)
{
Feature_t f = {0};
f.can_get = true;
f.can_reset = false;
f.can_english = false;
f.can_user_define = true;
return f;
}
def_target_gsf(wr_tex);

View File

@ -18,12 +18,13 @@ wr_winget_prelude ()
chef_set_sous_chefs (this, 0);
chef_set_contributors (this, 0);
chef_has_getfn();
chef_has_setfn();
chef_has_resetsrc();
this.can_english = false;
this.can_user_define = true;
def_upstream("https://github.com/microsoft/winget-cli/");
def_sources_begin()
{&upstream, "https://cdn.winget.microsoft.com/cache", NULL},
{&MirrorZ, "https://mirrors.cernet.edu.cn/winget-source", NULL},