Make pl and os user definable

[GitHub link #33 #29]
This commit is contained in:
Aoran Zeng 2024-06-14 00:17:21 +08:00
parent 92b3446531
commit 18a4142773
2 changed files with 103 additions and 142 deletions

View File

@ -266,7 +266,7 @@ auto_select_ (SourceInfo *sources, size_t size, const char *target)
{ {
if (0==size || 1==size) if (0==size || 1==size)
{ {
chsrc_error (xy_strjoin (3, "当前 ", target, " 无任何可用源,请联系维护者")); chsrc_error (xy_strjoin (3, "当前 ", target, " 无任何可用源,请联系维护者: chsrc issue"));
exit (1); exit (1);
} }
@ -365,7 +365,7 @@ source_has_empty_url (SourceInfo *source)
else \ else \
{ \ { \
int __index = use_specific_mirror_or_auto_select (option, for_what); \ int __index = use_specific_mirror_or_auto_select (option, for_what); \
source = pl_ruby_sources[__index]; \ source = for_what##_sources[__index]; \
} }

View File

@ -170,15 +170,13 @@ pl_python_getsrc (char *option)
void void
pl_python_setsrc (char *option) pl_python_setsrc (char *option)
{ {
int index = 0;
char *chsrc_type = xy_streql (option, ChsrcTypeReset) ? ChsrcTypeReset : ChsrcTypeAuto; char *chsrc_type = xy_streql (option, ChsrcTypeReset) ? ChsrcTypeReset : ChsrcTypeAuto;
char *prog = NULL; char *prog = NULL;
bool pdm_exist = false; bool pdm_exist = false;
pl_python_check_cmd (&prog, &pdm_exist); pl_python_check_cmd (&prog, &pdm_exist);
index = use_specific_mirror_or_auto_select (option, pl_python); SourceInfo source;
chsrc_yield_source (pl_python);
SourceInfo source = pl_python_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_2strjoin (prog, xy_2strjoin (" -m pip config set global.index-url ", source.url)); char *cmd = xy_2strjoin (prog, xy_2strjoin (" -m pip config set global.index-url ", source.url));
@ -256,9 +254,8 @@ pl_nodejs_setsrc (char *option)
bool npm_exist, yarn_exist, pnpm_exist; bool npm_exist, yarn_exist, pnpm_exist;
pl_nodejs_check_cmd (&npm_exist, &yarn_exist, &pnpm_exist); pl_nodejs_check_cmd (&npm_exist, &yarn_exist, &pnpm_exist);
int index = use_specific_mirror_or_auto_select (option, pl_nodejs); SourceInfo source;
chsrc_yield_source (pl_nodejs);
SourceInfo source = pl_nodejs_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = NULL; char *cmd = NULL;
@ -323,9 +320,8 @@ pl_perl_getsrc (char *option)
void void
pl_perl_setsrc (char *option) pl_perl_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_perl); SourceInfo source;
chsrc_yield_source (pl_perl);
SourceInfo source = pl_perl_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_strjoin (3, char *cmd = xy_strjoin (3,
@ -370,9 +366,8 @@ pl_php_setsrc (char *option)
{ {
pl_php_check_cmd (); pl_php_check_cmd ();
int index = use_specific_mirror_or_auto_select (option, pl_php); SourceInfo source;
chsrc_yield_source (pl_php);
SourceInfo source = pl_php_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *where = " -g "; char *where = " -g ";
@ -401,9 +396,8 @@ pl_lua_getsrc (char *option)
void void
pl_lua_setsrc (char *option) pl_lua_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_lua); SourceInfo source;
chsrc_yield_source (pl_lua);
SourceInfo source = pl_lua_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *config = xy_strjoin (3, "rocks_servers = {\n" char *config = xy_strjoin (3, "rocks_servers = {\n"
@ -452,9 +446,8 @@ pl_go_setsrc (char *option)
{ {
pl_go_check_cmd (); pl_go_check_cmd ();
int index = use_specific_mirror_or_auto_select (option, pl_go); SourceInfo source;
chsrc_yield_source (pl_go);
SourceInfo source = pl_go_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = "go env -w GO111MODULE=on"; char *cmd = "go env -w GO111MODULE=on";
@ -479,9 +472,8 @@ pl_rust_getsrc (char *option)
void void
pl_rust_setsrc (char *option) pl_rust_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_rust); SourceInfo source;
chsrc_yield_source (pl_rust);
SourceInfo source = pl_rust_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
const char* file = xy_strjoin (3, const char* file = xy_strjoin (3,
@ -499,7 +491,7 @@ pl_rust_setsrc (char *option)
void void
pl_dotnet_getsrc (char* option) pl_dotnet_getsrc (char *option)
{ {
chsrc_error ("暂时无法查看NuGet源若有需求请您提交issue"); chsrc_error ("暂时无法查看NuGet源若有需求请您提交issue");
} }
@ -508,7 +500,7 @@ pl_dotnet_getsrc (char* option)
* NuGet * NuGet
*/ */
void void
pl_dotnet_setsrc (char* option) pl_dotnet_setsrc (char *option)
{ {
chsrc_error ("暂时无法为NuGet换源若有需求请您提交issue"); chsrc_error ("暂时无法为NuGet换源若有需求请您提交issue");
} }
@ -516,7 +508,7 @@ pl_dotnet_setsrc (char* option)
void void
pl_java_check_cmd (bool* maven_exist, bool* gradle_exist) pl_java_check_cmd (bool *maven_exist, bool *gradle_exist)
{ {
char *check_cmd = NULL; char *check_cmd = NULL;
check_cmd = xy_str_to_quietcmd ("mvn --version"); check_cmd = xy_str_to_quietcmd ("mvn --version");
@ -532,7 +524,7 @@ pl_java_check_cmd (bool* maven_exist, bool* gradle_exist)
} }
} }
char* char *
pl_java_find_maven_config () pl_java_find_maven_config ()
{ {
char *buf = xy_run ("mvn -v", 2, NULL); char *buf = xy_run ("mvn -v", 2, NULL);
@ -561,9 +553,8 @@ pl_java_setsrc (char *option)
bool maven_exist, gradle_exist; bool maven_exist, gradle_exist;
pl_java_check_cmd (&maven_exist, &gradle_exist); pl_java_check_cmd (&maven_exist, &gradle_exist);
int index = use_specific_mirror_or_auto_select (option, pl_java); SourceInfo source;
chsrc_yield_source (pl_java);
SourceInfo source = pl_java_sources[index];
chsrc_confirm_selection(&source); chsrc_confirm_selection(&source);
if (maven_exist) if (maven_exist)
@ -604,9 +595,8 @@ pl_java_setsrc (char *option)
void void
pl_clojure_setsrc (char *option) pl_clojure_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_clojure); SourceInfo source;
chsrc_yield_source (pl_clojure);
SourceInfo source = pl_clojure_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_warn ("抱歉Clojure换源较复杂您可手动查阅并换源:"); chsrc_warn ("抱歉Clojure换源较复杂您可手动查阅并换源:");
@ -638,9 +628,8 @@ pl_dart_getsrc (char *option)
void void
pl_dart_setsrc (char *option) pl_dart_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_dart); SourceInfo source;
chsrc_yield_source (pl_dart);
SourceInfo source = pl_dart_sources[index];
chsrc_confirm_selection(&source); chsrc_confirm_selection(&source);
char *towrite = NULL; char *towrite = NULL;
@ -684,9 +673,8 @@ pl_dart_setsrc (char *option)
void void
pl_haskell_setsrc (char *option) pl_haskell_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_haskell); SourceInfo source;
chsrc_yield_source (pl_haskell);
SourceInfo source = pl_haskell_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *file = xy_strjoin (3, "repository mirror\n" char *file = xy_strjoin (3, "repository mirror\n"
@ -694,13 +682,16 @@ pl_haskell_setsrc (char *option)
"\n secure: True"); "\n secure: True");
char *config = NULL; char *config = NULL;
if (xy_on_windows) { if (xy_on_windows)
{
config = xy_uniform_path ("~/AppData/Roaming/cabal/config"); config = xy_uniform_path ("~/AppData/Roaming/cabal/config");
} else { }
else
{
config = "~/.cabal/config"; config = "~/.cabal/config";
} }
chsrc_note_remarkably (xy_strjoin (3,"请向 ", config, " 中手动添加:")); chsrc_note_remarkably (xy_strjoin (3, "请向 ", config, " 中手动添加:"));
puts (file); puts (""); puts (file); puts ("");
config = xy_uniform_path ("~/.stack/config.yaml"); config = xy_uniform_path ("~/.stack/config.yaml");
@ -755,9 +746,8 @@ pl_ocaml_setsrc(char *option)
{ {
pl_ocaml_check_cmd (); pl_ocaml_check_cmd ();
int index = use_specific_mirror_or_auto_select (option, pl_ocaml); SourceInfo source;
chsrc_yield_source (pl_ocaml);
SourceInfo source = pl_ocaml_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_strjoin (3, "opam repo set-url default ", char *cmd = xy_strjoin (3, "opam repo set-url default ",
@ -798,9 +788,8 @@ pl_r_getsrc (char *option)
void void
pl_r_setsrc (char *option) pl_r_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_r); SourceInfo source;
chsrc_yield_source (pl_r);
SourceInfo source = pl_r_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *bioconductor_url = xy_str_delete_suffix (xy_str_delete_suffix (source.url, "cran/"), "CRAN/"); char *bioconductor_url = xy_str_delete_suffix (xy_str_delete_suffix (source.url, "cran/"), "CRAN/");
@ -846,9 +835,8 @@ pl_julia_getsrc (char *option)
void void
pl_julia_setsrc (char *option) pl_julia_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, pl_julia); SourceInfo source;
chsrc_yield_source (pl_julia);
SourceInfo source = pl_julia_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
const char *towrite = xy_strjoin (3, "ENV[\"JULIA_PKG_SERVER\"] = \"", source.url, "\""); const char *towrite = xy_strjoin (3, "ENV[\"JULIA_PKG_SERVER\"] = \"", source.url, "\"");
@ -955,9 +943,8 @@ os_ubuntu_getsrc (char *option)
void void
os_ubuntu_setsrc_for_deb822 (char *option) os_ubuntu_setsrc_for_deb822 (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, os_ubuntu); SourceInfo source;
chsrc_yield_source (os_ubuntu);
SourceInfo source = os_ubuntu_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup (ETC_APT_DEB822_UBUNTU_SOURCES); chsrc_backup (ETC_APT_DEB822_UBUNTU_SOURCES);
@ -995,9 +982,8 @@ os_ubuntu_setsrc (char *option)
bool sourcelist_exist = ensure_apt_sourcelist (Debian_deriv_ubuntu); bool sourcelist_exist = ensure_apt_sourcelist (Debian_deriv_ubuntu);
int index = use_specific_mirror_or_auto_select (option, os_ubuntu); SourceInfo source;
chsrc_yield_source (os_ubuntu);
SourceInfo source = os_ubuntu_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
// 不存在的时候,用的是我们生成的无效文件,不要备份 // 不存在的时候,用的是我们生成的无效文件,不要备份
@ -1038,9 +1024,8 @@ os_mint_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_mint); SourceInfo source;
chsrc_yield_source (os_mint);
SourceInfo source = os_mint_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/apt/sources.list.d/official-package-repositories.list"); chsrc_backup ("/etc/apt/sources.list.d/official-package-repositories.list");
@ -1074,9 +1059,8 @@ os_debian_setsrc (char *option)
// Docker环境下Debian镜像可能不存在该文件 // Docker环境下Debian镜像可能不存在该文件
bool sourcelist_exist = ensure_apt_sourcelist (Debian_debian); bool sourcelist_exist = ensure_apt_sourcelist (Debian_debian);
int index = use_specific_mirror_or_auto_select (option, os_debian); SourceInfo source;
chsrc_yield_source (os_debian);
SourceInfo source = os_debian_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_note_remarkably ("如果遇到无法拉取 HTTPS 源的情况,我们会使用 HTTP 源并需要您运行:"); chsrc_note_remarkably ("如果遇到无法拉取 HTTPS 源的情况,我们会使用 HTTP 源并需要您运行:");
@ -1108,9 +1092,8 @@ os_raspberrypi_setsrc (char *option)
{ {
// chsrc_ensure_root(); // HELP: 不确定是否需要 // chsrc_ensure_root(); // HELP: 不确定是否需要
int index = use_specific_mirror_or_auto_select (option, os_raspberrypi); SourceInfo source;
chsrc_yield_source (os_raspberrypi);
SourceInfo source = os_raspberrypi_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/apt/sources.list.d/raspi.list"); chsrc_backup ("/etc/apt/sources.list.d/raspi.list");
@ -1139,15 +1122,13 @@ os_deepin_setsrc (char *option)
{ {
chsrc_ensure_root(); chsrc_ensure_root();
int index = use_specific_mirror_or_auto_select (option, os_deepin); SourceInfo source;
chsrc_yield_source (os_deepin);
SourceInfo source = os_deepin_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup (ETC_APT_SOURCELIST); chsrc_backup (ETC_APT_SOURCELIST);
char *cmd = xy_strjoin (3, char *cmd = xy_strjoin (3, "sed -E -i \'s@https?://.*/deepin/?@",
"sed -E -i \'s@https?://.*/deepin/?@",
source.url, source.url,
"@g\' /etc/apt/sources.list"); "@g\' /etc/apt/sources.list");
@ -1166,12 +1147,11 @@ os_fedora_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_fedora); SourceInfo source;
chsrc_yield_source (os_fedora);
SourceInfo source = os_fedora_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_warn ("fedora 29 及以下版本暂不支持"); chsrc_warn_remarkably ("Fedora 29 及以下版本暂不支持");
chsrc_backup ("/etc/yum.repos.d/fedora.repo"); chsrc_backup ("/etc/yum.repos.d/fedora.repo");
chsrc_backup ("/etc/yum.repos.d/fedora-updates.repo"); chsrc_backup ("/etc/yum.repos.d/fedora-updates.repo");
@ -1207,9 +1187,8 @@ os_opensuse_setsrc (char *option)
{ {
chsrc_ensure_root (); // HELP: 不知道是否需要确保root权限 chsrc_ensure_root (); // HELP: 不知道是否需要确保root权限
int index = use_specific_mirror_or_auto_select (option, os_opensuse); SourceInfo source;
chsrc_yield_source (os_opensuse);
SourceInfo source = os_opensuse_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *source_nselect = "zypper mr -da"; char *source_nselect = "zypper mr -da";
@ -1270,21 +1249,19 @@ os_kali_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_kali); SourceInfo source;
chsrc_yield_source (os_kali);
SourceInfo source = os_kali_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup (ETC_APT_SOURCELIST); chsrc_backup (ETC_APT_SOURCELIST);
char *cmd = xy_strjoin (3, char *cmd = xy_strjoin (3, "sed -E -i \'s@https?://.*/kali/?@",
"sed -E -i \'s@https?://.*/kali/?@",
source.url, source.url,
"@g\' /etc/apt/sources.list"); "@g\' /etc/apt/sources.list");
chsrc_run (cmd); chsrc_run (cmd);
chsrc_run ("apt update"); chsrc_run ("apt update");
chsrc_say_lastly (&source, ChsrcTypeAuto); chsrc_say_lastly (&source, ChsrcTypeUntested);
} }
@ -1295,9 +1272,8 @@ os_kali_setsrc (char *option)
void void
os_msys2_setsrc (char *option) os_msys2_setsrc (char *option)
{ {
int index = use_specific_mirror_or_auto_select (option, os_msys2); SourceInfo source;
chsrc_yield_source (os_msys2);
SourceInfo source = os_msys2_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/pacman.d/mirrorlist.mingw32"); chsrc_backup ("/etc/pacman.d/mirrorlist.mingw32");
@ -1327,9 +1303,8 @@ os_arch_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_arch); SourceInfo source;
chsrc_yield_source (os_arch);
SourceInfo source = os_arch_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/pacman.d/mirrorlist"); chsrc_backup ("/etc/pacman.d/mirrorlist");
@ -1380,9 +1355,8 @@ os_gentoo_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_gentoo); SourceInfo source;
chsrc_yield_source (os_gentoo);
SourceInfo source = os_arch_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/portage/repos.conf/gentoo.conf"); chsrc_backup ("/etc/portage/repos.conf/gentoo.conf");
@ -1408,9 +1382,8 @@ os_rocky_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_rocky); SourceInfo source;
chsrc_yield_source (os_rocky);
SourceInfo source = os_rocky_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_strjoin (3, char *cmd = xy_strjoin (3,
@ -1432,9 +1405,8 @@ os_alma_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_alma); SourceInfo source;
chsrc_yield_source (os_alma);
SourceInfo source = os_alma_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_strjoin (3, char *cmd = xy_strjoin (3,
@ -1461,9 +1433,8 @@ os_alpine_setsrc (char *option)
{ {
// chsrc_ensure_root(); // HELP: 不确定是否需要root // chsrc_ensure_root(); // HELP: 不确定是否需要root
int index = use_specific_mirror_or_auto_select (option, os_alpine); SourceInfo source;
chsrc_yield_source (os_alpine);
SourceInfo source = os_alpine_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char* cmd = xy_strjoin (3, char* cmd = xy_strjoin (3,
@ -1492,9 +1463,8 @@ os_void_setsrc (char *option)
{ {
// chsrc_ensure_root(); // HELP: 不确定是否需要root // chsrc_ensure_root(); // HELP: 不确定是否需要root
int index = use_specific_mirror_or_auto_select (option, os_void); SourceInfo source;
chsrc_yield_source (os_void);
SourceInfo source = os_void_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_ensure_dir ("/etc/xbps.d"); chsrc_ensure_dir ("/etc/xbps.d");
@ -1525,9 +1495,8 @@ os_solus_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_solus); SourceInfo source;
chsrc_yield_source (os_solus);
SourceInfo source = os_solus_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_2strjoin ("eopkg add-repo Solus ", source.url); char *cmd = xy_2strjoin ("eopkg add-repo Solus ", source.url);
@ -1567,9 +1536,8 @@ os_trisquel_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_trisquel); SourceInfo source;
chsrc_yield_source (os_trisquel);
SourceInfo source = os_trisquel_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup (ETC_APT_SOURCELIST); chsrc_backup (ETC_APT_SOURCELIST);
@ -1597,9 +1565,8 @@ os_linuxlite_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_linuxlite); SourceInfo source;
chsrc_yield_source (os_linuxlite);
SourceInfo source = os_linuxlite_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup (ETC_APT_SOURCELIST); chsrc_backup (ETC_APT_SOURCELIST);
@ -1620,9 +1587,8 @@ os_openeuler_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_openeuler); SourceInfo source;
chsrc_yield_source (os_openeuler);
SourceInfo source = os_openeuler_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/yum.repos.d/openEuler.repo"); chsrc_backup ("/etc/yum.repos.d/openEuler.repo");
@ -1646,9 +1612,8 @@ os_anolis_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_anolis); SourceInfo source;
chsrc_yield_source (os_anolis);
SourceInfo source = os_anolis_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
char *cmd = xy_strjoin (3, "sed -i.bak -E 's|https?://(mirrors\\.openanolis\\.cn/anolis)|", source.url, "|g' /etc/yum.repos.d/*.repo"); char *cmd = xy_strjoin (3, "sed -i.bak -E 's|https?://(mirrors\\.openanolis\\.cn/anolis)|", source.url, "|g' /etc/yum.repos.d/*.repo");
@ -1671,9 +1636,8 @@ os_openkylin_setsrc (char *option)
{ {
chsrc_ensure_root(); chsrc_ensure_root();
int index = use_specific_mirror_or_auto_select (option, os_openkylin); SourceInfo source;
chsrc_yield_source (os_openkylin);
SourceInfo source = os_openkylin_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup (ETC_APT_SOURCELIST); chsrc_backup (ETC_APT_SOURCELIST);
@ -1815,9 +1779,8 @@ os_netbsd_setsrc (char *option)
{ {
chsrc_ensure_root (); // HELP: 不知道是否需要确保root权限 chsrc_ensure_root (); // HELP: 不知道是否需要确保root权限
int index = use_specific_mirror_or_auto_select (option, os_netbsd); SourceInfo source;
chsrc_yield_source (os_netbsd);
SourceInfo source = os_netbsd_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/usr/pkg/etc/pkgin/repositories.conf"); chsrc_backup ("/usr/pkg/etc/pkgin/repositories.conf");
@ -1850,9 +1813,8 @@ os_openbsd_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_openbsd); SourceInfo source;
chsrc_yield_source (os_openbsd);
SourceInfo source = os_openbsd_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/installurl"); chsrc_backup ("/etc/installurl");
@ -1870,9 +1832,8 @@ os_ros_setsrc (char *option)
{ {
chsrc_ensure_root (); chsrc_ensure_root ();
int index = use_specific_mirror_or_auto_select (option, os_ros); SourceInfo source;
chsrc_yield_source (os_ros);
SourceInfo source = os_ros_sources[index];
chsrc_confirm_selection (&source); chsrc_confirm_selection (&source);
chsrc_backup ("/etc/apt/sources.list.d/ros-latest.list"); chsrc_backup ("/etc/apt/sources.list.d/ros-latest.list");