From c9feddfd654a74572b1abbf4d8e66d72f34729c3 Mon Sep 17 00:00:00 2001 From: Heng Guo <2085471348@qq.com> Date: Wed, 6 Sep 2023 16:39:29 +0800 Subject: [PATCH] Add os deepin;Modify README --- README.md | 3 ++- chsrc.c | 39 ++++++++++++++++++++++++++++++++++++++- chsrc.h | 18 ++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d83e765..0398d44 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ TODO: 上述已全部完成,但 ```bash chsrc set ubuntu +chsrc set deepin chsrc set debian chsrc set fedora chsrc set kali @@ -79,7 +80,7 @@ chsrc set msys2 或 chsrc set msys ``` TODO: -- [ ] `chsrc set deepin` + - [ ] `chsrc set openkylin` - [ ] `chsrc set openeuler` diff --git a/chsrc.c b/chsrc.c index 6053cec..b1edebb 100644 --- a/chsrc.c +++ b/chsrc.c @@ -865,6 +865,41 @@ os_ubuntu_setsrc (char* option) chsrc_say_thanks(&source); } +/** + * 未经测试 + */ +void +os_deepin_setsrc (char* option) +{ + int index = 0; + + if (NULL!=option) { + index = lets_find_mirror(os_deepin, option); + } else { + index = lets_test_speed(os_deepin); + } + + source_info source = os_deepin_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]*\\/deepin\\/@\\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); +} /** * Debian Buster 以上版本默认支持 HTTPS 源。如果遇到无法拉取 HTTPS 源的情况,请先使用 HTTP 源并安装 @@ -1272,6 +1307,7 @@ static const char const target_info os_ubuntu_target = {os_ubuntu_setsrc, NULL, os_ubuntu_sources, 7}, + os_deepin_target = {os_deepin_setsrc, NULL, os_deepin_sources, 7}, os_debian_target = {os_debian_setsrc, NULL, os_debian_sources, 7}, os_fedora_target = {os_fedora_setsrc, NULL, os_fedora_sources, 7}, os_kali_target = {os_kali_setsrc, NULL, os_kali_sources, 7}, @@ -1283,6 +1319,7 @@ target_info os_manjaro_target = {os_manjaro_setsrc, NULL, NULL, 0}; static const char const *os_ubuntu [] = {"ubuntu", NULL, targetinfo(&os_ubuntu_target)}, +*os_deepin [] = {"deepin", NULL, targetinfo(&os_deepin_target)}, *os_debian [] = {"debian", NULL, targetinfo(&os_debian_target)}, *os_fedora [] = {"fedora", NULL, targetinfo(&os_fedora_target)}, *os_kali [] = {"kali", NULL, targetinfo(&os_kali_target)}, @@ -1294,7 +1331,7 @@ static const char const *os_manjaro [] = {"manjaro", NULL, targetinfo(&os_manjaro_target)}, **os_systems[] = { - os_ubuntu, os_debian,os_fedora,os_kali,os_openbsd,os_msys2,os_arch,os_gentoo,os_netbsd,os_manjaro + os_ubuntu, os_deepin, os_debian,os_fedora,os_kali,os_openbsd,os_msys2,os_arch,os_gentoo,os_netbsd,os_manjaro }; diff --git a/chsrc.h b/chsrc.h index 8e3cc52..6ca70b4 100644 --- a/chsrc.h +++ b/chsrc.h @@ -294,6 +294,23 @@ os_ubuntu_sources[] = { {&Sohu, "https://mirrors.sohu.com/ubuntu"} }, + +/** + * 2023-09-06 更新 + * + * TODO: 1. 源并不完整,且未经测试是否有效 + */ +os_deepin_sources[] = { + {&Ali, "https://mirrors.aliyun.com/deepin/"}, + {&Bfsu, "https://mirrors.bfsu.edu.cn/deepin/"}, + {&Ustc, "https://mirrors.ustc.edu.cn/deepin/"}, + {&Tuna, "https://mirrors.tuna.tsinghua.edu.cn/deepin/"}, + {&Tencent, "https://mirrors.tencent.com/deepin/"}, + {&Netease, "https://mirrors.163.com/deepin/"}, + {&Sohu, "https://mirrors.sohu.com/deepin/"} +}, + + /** * 2023-09-01 更新 * @@ -473,6 +490,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); /* Target Info */ typedef struct {