From 9055143b1a226309b360167a7d6a1de3dc337724 Mon Sep 17 00:00:00 2001 From: Heng Guo <2085471348@qq.com> Date: Wed, 6 Sep 2023 17:18:47 +0800 Subject: [PATCH] Add os openkylin; Modify os openkylin in README --- README.md | 6 ++++-- chsrc.c | 43 +++++++++++++++++++++++++++++++++++++++++-- chsrc.h | 17 ++++++++++++++++- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4cafe7e..01a901a 100644 --- a/README.md +++ b/README.md @@ -76,13 +76,15 @@ chsrc set netbsd chsrc set manjaro chsrc set openeuler +chsrc set openkylin chsrc set msys2 或 chsrc set msys ``` -TODO: +TODO: 上述已全部完成,但 -- [ ] `chsrc set openkylin` +1. 部分换源方案当前需要用户进行少量手动操作如 `manjaro` +2. 还未经多平台测试 diff --git a/chsrc.c b/chsrc.c index 1480b86..52f4870 100644 --- a/chsrc.c +++ b/chsrc.c @@ -1304,6 +1304,43 @@ os_openeuler_setsrc (char* option) chsrc_say_thanks(&source); } +/** + * 未经测试 + */ +void +os_openkylin_setsrc (char* option) +{ + int index = 0; + + if (NULL!=option) { + index = lets_find_mirror(os_openkylin, option); + } else { + index = lets_test_speed(os_openkylin); + } + + source_info source = os_openkylin_sources[index]; + chsrc_say_selection(&source); + + char* backup = "cp -rf /etc/apt/sources.list /etc/apt/sources.list.bak"; + chsrc_logcmd (backup); + system(backup); + + xy_info ("chsrc: 备份文件名: /etc/apt/sources.list.bak"); + + char* cmd; + cmd = xy_strjoin(3, + "sed -E \'s@(^[^#]* .*)http[:|\\.|\\/|a-z|A-Z]*\\/openkylin\\/@\\1", + source.url, + "@\'< /etc/apt/sources.list.bak | cat > /etc/apt/sources.list"); + chsrc_logcmd(cmd); + system(cmd); + // char* rm = "rm -rf /etc/apt/source.list.bak"; + // system(rm); + + chsrc_say_thanks(&source); +} + + /************************************** Begin Target Matrix ****************************************/ def_target_info(pl_ruby); def_target_info(pl_python); @@ -1353,7 +1390,8 @@ target_info os_gentoo_target = {os_gentoo_setsrc, NULL, os_gentoo_sources, 7}, os_netbsd_target = {os_netbsd_setsrc, NULL, os_netbsd_sources, 7}, os_manjaro_target = {os_manjaro_setsrc, NULL, NULL, 0}, - os_openeuler_target = {os_openeuler_setsrc, NULL, os_openeuler_sources, 7}; + os_openeuler_target = {os_openeuler_setsrc, NULL, os_openeuler_sources, 7}, + os_openkylin_target = {os_openkylin_setsrc, NULL, os_openkylin_sources, 7}; static const char const *os_ubuntu [] = {"ubuntu", NULL, targetinfo(&os_ubuntu_target)}, *os_deepin [] = {"deepin", NULL, targetinfo(&os_deepin_target)}, @@ -1367,9 +1405,10 @@ static const char const *os_netbsd [] = {"netbsd", NULL, targetinfo(&os_netbsd_target)}, *os_manjaro [] = {"manjaro", NULL, targetinfo(&os_manjaro_target)}, *os_openeuler [] = {"openeuler",NULL, targetinfo(&os_openeuler_target)}, +*os_openkylin [] = {"openkylin",NULL, targetinfo(&os_openkylin_target)}, **os_systems[] = { - os_ubuntu, os_deepin, os_debian,os_fedora,os_kali,os_openbsd,os_msys2,os_arch,os_gentoo,os_netbsd,os_manjaro,os_openeuler + os_ubuntu, os_deepin, os_debian,os_fedora,os_kali,os_openbsd,os_msys2,os_arch,os_gentoo,os_netbsd,os_manjaro,os_openeuler,os_openkylin }; diff --git a/chsrc.h b/chsrc.h index 9a34766..1407fa1 100644 --- a/chsrc.h +++ b/chsrc.h @@ -451,6 +451,21 @@ os_openeuler_sources[] = { {&Tencent, "https://mirrors.tencent.com/openeuler/"}, {&Netease, "https://mirrors.163.com/openeuler/"}, {&Sohu, "https://mirrors.sohu.com/openeuler/"} +}, + +/** + * 2023-09-06 更新 + * + * TODO: 1. 源并不完整,且未经测试是否有效 + */ +os_openkylin_sources[] = { + {&Ali, "https://mirrors.aliyun.com/openkylin/"}, + {&Bfsu, "https://mirrors.bfsu.edu.cn/openkylin/"}, + {&Ustc, "https://mirrors.ustc.edu.cn/openkylin/"}, + {&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/openkylin/"}, + {&Tencent, "https://mirrors.tencent.com/openkylin/"}, + {&Netease, "https://mirrors.163.com/openkylin/"}, + {&Sohu, "https://mirrors.sohu.com/openkylin/"} } ; @@ -505,7 +520,7 @@ def_target_sources_n(pl_r); def_target_sources_n(pl_julia); def_target_sources_n(os_ubuntu); def_target_sources_n(os_debian); def_target_sources_n(os_fedora); def_target_sources_n(os_kali); def_target_sources_n(os_openbsd); def_target_sources_n(os_msys2); def_target_sources_n(os_arch); def_target_sources_n(os_gentoo); def_target_sources_n(os_netbsd); -def_target_sources_n(os_deepin); def_target_sources_n(os_openeuler); +def_target_sources_n(os_deepin); def_target_sources_n(os_openeuler); def_target_sources_n(os_openkylin); /* Target Info */ typedef struct {