Use common functions

This commit is contained in:
Aoran Zeng 2023-09-22 13:31:05 +08:00
parent 094f1ed7d2
commit e9579833a6

90
chsrc.c

@ -3,7 +3,7 @@
* License : GPLv3
* Authors : Aoran Zeng <ccmywish@qq.com>
* Created on : <2023-08-28>
* Last modified : <2023-09-21>
* Last modified : <2023-09-22>
*
* chsrc:
*
@ -12,7 +12,7 @@
* GPLv3 LICENSE.txt
* ------------------------------------------------------------*/
#define Chsrc_Version "v0.1.0-20230921"
#define Chsrc_Version "v0.1.0-20230922"
#include "chsrc.h"
@ -904,6 +904,7 @@ os_debian_getsrc(char* option)
void
os_debian_setsrc (char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -944,11 +945,12 @@ os_deepin_getsrc(char* option)
}
/**
*
* HELP:
*/
void
os_deepin_setsrc (char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -986,6 +988,7 @@ os_deepin_setsrc (char* option)
void
os_fedora_setsrc (char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1038,11 +1041,12 @@ os_fedora_setsrc (char* option)
/**
*
* HELP:
*/
void
os_kali_setsrc(char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1051,22 +1055,19 @@ os_kali_setsrc(char* option)
index = lets_test_speed(os_kali);
}
source_info source = os_kali_sources[index];
chsrc_say_selection(&source);
char* backup = "cp -f /etc/apt/sources.list /etc/apt/sources.list.bak --backup='t'";
chsrc_logcmd(backup);
system(backup);
chsrc_runcmd(backup);
xy_info ("chsrc: 备份文件名: /etc/apt/sources.list.bak");
char* cmd = xy_strjoin(3, "sed -i \'s@(^[^#]* .*)http[:|\\.|\\/|a-z|A-Z]*\\/kali\\/@\\1",
source.url,
"@g\' /etc/apt/sources.list");
chsrc_logcmd(cmd);
system(cmd);
chsrc_runcmd(cmd);
// char* rm = "rm -rf /etc/apt/source.list.bak";
// system(rm);
@ -1076,11 +1077,12 @@ os_kali_setsrc(char* option)
/**
*
* HELP:
*/
void
os_openbsd_setsrc(char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1089,21 +1091,19 @@ os_openbsd_setsrc(char* option)
index = lets_test_speed(os_openbsd);
}
source_info source = os_openbsd_sources[index];
chsrc_say_selection(&source);
char* backup = "cp -f /etc/installurl /etc/installurl.bak --backup='t'";
chsrc_logcmd(backup);
system(backup);
chsrc_runcmd(backup);
xy_info ("chsrc: 备份文件名: /etc/installurl.bak");
char* cmd = xy_strjoin(3,"echo ",
source.url,
" > /etc/installurl");
chsrc_logcmd(cmd);
system(cmd);
chsrc_runcmd(cmd);
// char* rm = "rm -rf /etc/installurl.bak";
// system(rm);
@ -1114,7 +1114,7 @@ os_openbsd_setsrc(char* option)
/**
*
* HELP:
*/
void
os_msys2_setsrc(char* option)
@ -1174,6 +1174,7 @@ os_msys2_setsrc(char* option)
void
os_arch_setsrc(char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1235,11 +1236,12 @@ os_arch_setsrc(char* option)
/**
*
* HELP:
*/
void
os_gentoo_setsrc(char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1253,15 +1255,13 @@ os_gentoo_setsrc(char* option)
char* backup = "cp -f /etc/portage/repos.conf/gentoo.conf /etc/portage/repos.conf/gentoo.conf.bak";
chsrc_logcmd(backup);
system(backup);
chsrc_runcmd(backup);
xy_info ("chsrc: 备份文件名: /etc/portage/repos.conf/gentoo.conf.bak");
char* cmd = xy_strjoin(3,"sed -i \"s#rsync[:|\\.|\\/|a-z|A-Z]*/gentoo-portage#rsync://",
source.url,
"gentoo-portage#g");
chsrc_logcmd(cmd);
system(cmd);
chsrc_runcmd(cmd);
char * yuan = xy_strjoin(3,"GENTOO_MIRRORS=\"https://",
source.url,
@ -1269,8 +1269,7 @@ os_gentoo_setsrc(char* option)
cmd = xy_strjoin(3,"cat ",
yuan,
" >> /etc/portage/make.conf");
chsrc_logcmd(cmd);
system(cmd);
chsrc_runcmd(cmd);
// char* rm = "rm -rf /etc/portage/repos.conf/gentoo.conf.bak";
// system(rm);
@ -1279,11 +1278,13 @@ os_gentoo_setsrc(char* option)
/**
*
* HELP:
*/
void
os_netbsd_setsrc(char* option)
{
ensure_root(); // HELP: 不知道是否需要确保root权限
int index = 0;
if (NULL!=option) {
@ -1292,14 +1293,12 @@ os_netbsd_setsrc(char* option)
index = lets_test_speed(os_netbsd);
}
source_info source = os_netbsd_sources[index];
chsrc_say_selection(&source);
char* backup = "cp -f /usr/pkg/etc/pkgin/repositories.conf /usr/pkg/etc/pkgin/repositories.conf.bak";
chsrc_logcmd(backup);
system(backup);
chsrc_runcmd(backup);
xy_info ("chsrc: 备份文件名: /usr/pkg/etc/pkgin/repositories.conf.bak");
@ -1311,8 +1310,7 @@ os_netbsd_setsrc(char* option)
"/",
version,
"/All > /usr/pkg/etc/pkgin/repositories.conf");
chsrc_logcmd(cmd);
system(cmd);
chsrc_runcmd(cmd);
// char* rm = "rm -rf /etc/portage/repos.conf/gentoo.conf.bak";
// system(rm);
@ -1328,6 +1326,7 @@ os_netbsd_setsrc(char* option)
void
os_manjaro_setsrc(char* option)
{
ensure_root();
char* cmd = "sudo pacman-mirrors -i -c China -m rank";
chsrc_runcmd(cmd);
@ -1337,11 +1336,12 @@ os_manjaro_setsrc(char* option)
/**
*
* HELP:
*/
void
os_openeuler_setsrc (char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1354,8 +1354,7 @@ os_openeuler_setsrc (char* option)
chsrc_say_selection(&source);
char* backup = "cp -f /etc/yum.repos.d/openEuler.repot /etc/yum.repos.d/openEuler.repo.bak --backup='t'";
chsrc_logcmd (backup);
system(backup);
chsrc_runcmd(backup);
xy_info ("chsrc: 备份文件名: /etc/yum.repos.d/openEuler.repo.bak");
@ -1364,8 +1363,9 @@ os_openeuler_setsrc (char* option)
"s#http://repo.openeuler.org#",
source.url,
"#\'< /etc/yum.repos.d/openEuler.repo.bak | cat > /etc/yum.repos.d/openEuler.repo");
chsrc_logcmd(cmd);
system(cmd);
chsrc_runcmd(cmd);
// char* rm = "rm -rf /etc/yum.repos.d/openEuler.repo.bak";
// system(rm);
@ -1375,11 +1375,12 @@ os_openeuler_setsrc (char* option)
/**
*
* HELP:
*/
void
os_openkylin_setsrc (char* option)
{
ensure_root();
int index = 0;
if (NULL!=option) {
@ -1392,8 +1393,7 @@ os_openkylin_setsrc (char* option)
chsrc_say_selection(&source);
char* backup = "cp -f /etc/apt/sources.list /etc/apt/sources.list.bak --backup='t'";
chsrc_logcmd (backup);
system(backup);
chsrc_runcmd(backup);
xy_info ("chsrc: 备份文件名: /etc/apt/sources.list.bak");
@ -1402,8 +1402,8 @@ os_openkylin_setsrc (char* option)
"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);
chsrc_runcmd(cmd);
// char* rm = "rm -rf /etc/apt/source.list.bak";
// system(rm);
@ -1413,11 +1413,12 @@ os_openkylin_setsrc (char* option)
/**
* , sources of freebsd are different from each other.
* HELP: , sources of freebsd are different from each other.
*/
void
os_freebsd_setsrc (char* option)
{
ensure_root(); // HELP: 不知道是否需要确保root权限
int index = 0;
if (NULL!=option) {
@ -1491,11 +1492,12 @@ os_freebsd_setsrc (char* option)
/**
*
* HELP:
*/
void
os_opensuse_setsrc (char* option)
{
ensure_root(); // HELP: 不知道是否需要确保root权限
int index = 0;
if (NULL!=option) {
@ -1556,7 +1558,7 @@ os_opensuse_setsrc (char* option)
void
_wr_tex_check_cmd (bool* tlmgr_exist, bool* mpm_exist)
wr_tex_check_cmd_ (bool* tlmgr_exist, bool* mpm_exist)
{
char* check_cmd = xy_str_to_quietcmd("tlmgr --version");
*tlmgr_exist = does_the_program_exist (check_cmd, "tlmgr");
@ -1574,7 +1576,7 @@ void
wr_tex_getsrc(char* option)
{
bool tlmgr_exist, mpm_exist;
_wr_tex_check_cmd(&tlmgr_exist, &mpm_exist);
wr_tex_check_cmd_(&tlmgr_exist, &mpm_exist);
if (tlmgr_exist) {
chsrc_runcmd("tlmgr option repository");
@ -1592,7 +1594,7 @@ wr_tex_setsrc(char* option)
{
int index = 0;
bool tlmgr_exist, mpm_exist;
_wr_tex_check_cmd(&tlmgr_exist, &mpm_exist);
wr_tex_check_cmd_(&tlmgr_exist, &mpm_exist);
if (NULL!=option) {
index = lets_find_mirror(wr_tex, option);