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
View File

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