Independently support archlinuxcn

[GitHub link #32 #41]
This commit is contained in:
Aoran Zeng 2024-07-03 12:38:49 +08:00
parent f496d2448d
commit 4e58bd6260

View File

@ -9,12 +9,12 @@
* | Shengwei Chen <414685209@qq.com> * | Shengwei Chen <414685209@qq.com>
* | * |
* Created on : <2023-08-28> * Created on : <2023-08-28>
* Last modified : <2024-06-24> * Last modified : <2024-07-03>
* *
* chsrc: Change Source * chsrc: Change Source
* ------------------------------------------------------------*/ * ------------------------------------------------------------*/
#define Chsrc_Version "v0.1.7.rc1-2024/06/21" #define Chsrc_Version "v0.1.7.rc2-2024/07/03"
#define Chsrc_Maintain_URL "https://gitee.com/RubyMetric/chsrc" #define Chsrc_Maintain_URL "https://gitee.com/RubyMetric/chsrc"
#include "chsrc.h" #include "chsrc.h"
@ -1370,8 +1370,11 @@ os_msys2_setsrc (char *option)
/** /**
* : https://mirrors.tuna.tsinghua.edu.cn/help/archlinuxcn/ * :
* 1. https://mirrors.tuna.tsinghua.edu.cn/help/archlinux/
* 2. https://mirrors.tuna.tsinghua.edu.cn/help/archlinuxarm/
*/ */
#define OS_Pacman_MirrorList "/etc/pacman.d/mirrorlist"
void void
os_arch_setsrc (char *option) os_arch_setsrc (char *option)
{ {
@ -1381,7 +1384,7 @@ os_arch_setsrc (char *option)
chsrc_yield_source (os_arch); chsrc_yield_source (os_arch);
chsrc_confirm_source (&source); chsrc_confirm_source (&source);
chsrc_backup ("/etc/pacman.d/mirrorlist"); chsrc_backup (OS_Pacman_MirrorList);
bool arch_flag = false; bool arch_flag = false;
char *new_file = NULL; char *new_file = NULL;
@ -1399,12 +1402,12 @@ os_arch_setsrc (char *option)
} }
// TODO: 这里用的是 overwrite 吗? // TODO: 这里用的是 overwrite 吗?
chsrc_overwrite_file (new_file, "/etc/pacman.d/mirrorlist"); chsrc_overwrite_file (new_file, OS_Pacman_MirrorList);
chsrc_infolog_remarkably ("使用 archlinuxcn"); chsrc_infolog_remarkably ("使用 archlinuxcn");
char *towrite = xy_strjoin (3, "[archlinuxcn]\nServer=", source.url, "archlinuxcn/$repo/os/$arch"); char *towrite = xy_strjoin (3, "[archlinuxcn]\nServer = ", source.url, "archlinuxcn/$arch");
chsrc_append_to_file (towrite, "/etc/pacman.d/mirrorlist"); chsrc_append_to_file (towrite, OS_Pacman_MirrorList);
chsrc_run ("pacman -Sy archlinux-keyring", RunOpt_Default); chsrc_run ("pacman -Sy archlinux-keyring", RunOpt_Default);
@ -1420,6 +1423,40 @@ os_arch_setsrc (char *option)
} }
void
os_archlinuxcn_getsrc (char *option)
{
chsrc_take_a_look_at_file (OS_Pacman_MirrorList);
}
/**
* https://mirrors.tuna.tsinghua.edu.cn/help/archlinuxcn/
*/
void
os_archlinuxcn_setsrc (char *option)
{
chsrc_ensure_root ();
SourceInfo source;
chsrc_yield_source (os_archlinuxcn);
chsrc_confirm_source (&source);
chsrc_backup (OS_Pacman_MirrorList);
bool arch_flag = false;
char *new_file = NULL;
char *arch = chsrc_get_cpuarch ();
char *towrite = xy_strjoin (3, "[archlinuxcn]\nServer = ", source.url, "$arch");
chsrc_append_to_file (towrite, OS_Pacman_MirrorList);
chsrc_run ("pacman-key --lsign-key \"farseerfc@archlinux.org\"", RunOpt_No_Exit_On_Error);
chsrc_run ("pacman -Sy archlinux-keyring", RunOpt_Default);
chsrc_run ("pacman -Syy", RunOpt_No_Last_New_Line);
chsrc_say_lastly (&source, ChsrcTypeUntested);
}
#undef OS_Pacman_MirrorList
/** /**
* HELP: * HELP:
@ -2347,7 +2384,7 @@ def_target(os_raspberrypi);
def_target(os_armbian); def_target(os_armbian);
def_target_noget(os_fedora); def_target_noget(os_fedora);
def_target_noget(os_opensuse); def_target_noget(os_opensuse);
def_target_noget(os_arch); def_target_noget(os_arch); def_target(os_archlinuxcn);
def_target_noget(os_gentoo); def_target_noget(os_gentoo);
def_target_noget(os_rocky); def_target_noget(os_rocky);
def_target_noget(os_alma); def_target_noget(os_alma);
@ -2367,7 +2404,8 @@ static const char
*os_opensuse [] = {"suse", "opensuse", NULL, t(&os_opensuse_target)}, *os_opensuse [] = {"suse", "opensuse", NULL, t(&os_opensuse_target)},
*os_kali [] = {"kali", NULL, t(&os_kali_target)}, *os_kali [] = {"kali", NULL, t(&os_kali_target)},
*os_msys2 [] = {"msys2", "msys", NULL, t(&os_msys2_target)}, *os_msys2 [] = {"msys2", "msys", NULL, t(&os_msys2_target)},
*os_arch [] = {"arch", NULL, t(&os_arch_target)}, *os_arch [] = {"arch", "archlinux", NULL, t(&os_arch_target)},
*os_archlinuxcn[] = {"archlinuxcn", "archcn",NULL, t(&os_archlinuxcn_target)},
*os_manjaro [] = {"manjaro", NULL, t(&os_manjaro_target)}, *os_manjaro [] = {"manjaro", NULL, t(&os_manjaro_target)},
*os_gentoo [] = {"gentoo", NULL, t(&os_gentoo_target)}, *os_gentoo [] = {"gentoo", NULL, t(&os_gentoo_target)},
*os_rocky [] = {"rocky", "rockylinux", NULL, t(&os_rocky_target)}, *os_rocky [] = {"rocky", "rockylinux", NULL, t(&os_rocky_target)},
@ -2390,7 +2428,7 @@ static const char
**os_systems[] = **os_systems[] =
{ {
os_ubuntu, os_mint, os_debian, os_fedora, os_opensuse, os_kali, os_ubuntu, os_mint, os_debian, os_fedora, os_opensuse, os_kali,
os_arch, os_manjaro, os_gentoo, os_arch, os_archlinuxcn, os_manjaro, os_gentoo,
os_rocky, os_alma, os_rocky, os_alma,
os_alpine, os_void, os_solus, os_ros, os_alpine, os_void, os_solus, os_ros,
os_trisquel, os_linuxlite, os_raspberrypi, os_armbian, os_trisquel, os_linuxlite, os_raspberrypi, os_armbian,