Use 'old source list' macro

[GitHub #185]
This commit is contained in:
Aoran Zeng 2025-03-25 11:51:39 +08:00
parent 24af8eb090
commit 4c6ca7d289
No known key found for this signature in database
GPG Key ID: 8F8BA8488E10ED98
3 changed files with 22 additions and 18 deletions

View File

@ -47,13 +47,15 @@ os_debian_getsrc (char *option)
return; return;
} }
if (chsrc_check_file (OS_Apt_SourceList)) if (chsrc_check_file (OS_Debian_old_SourceList))
{ {
chsrc_view_file (OS_Apt_SourceList); chsrc_view_file (OS_Debian_old_SourceList);
return; return;
} }
chsrc_error2 ("缺少源配置文件!但仍可直接通过 chsrc set debian 来添加使用新的源"); char *msg = CliOpt_InEnglish ? "Source list file missing! However, you can still run `chsrc set debian` to add and use new sources"
: "缺少源配置文件!但仍可直接通过 chsrc set debian 来添加使用新的源";
chsrc_error2 (msg);
return; return;
} }
@ -62,7 +64,7 @@ static bool
os_debian_does_old_sourcelist_use_cdrom (void) os_debian_does_old_sourcelist_use_cdrom (void)
{ {
/* 我们只检查旧版sourcelist因为 common.h 中的填充只支持旧版 */ /* 我们只检查旧版sourcelist因为 common.h 中的填充只支持旧版 */
char *cmd = xy_2strjoin ("grep -q '^deb cdrom:' ", OS_Apt_SourceList); char *cmd = xy_2strjoin ("grep -q '^deb cdrom:' ", OS_Debian_old_SourceList);
int ret = system (cmd); int ret = system (cmd);
bool use_cdrom = ret == 0; bool use_cdrom = ret == 0;
@ -112,7 +114,7 @@ os_debian_setsrc (char *option)
chsrc_note2 ("将基于旧格式(非DEB822)换源"); chsrc_note2 ("将基于旧格式(非DEB822)换源");
/* Docker环境下Debian镜像可能不存在该文件 */ /* Docker环境下Debian镜像可能不存在该文件 */
bool sourcelist_exist = ensure_apt_sourcelist (OS_Is_Debian_Literally); bool sourcelist_exist = ensure_debian_or_ubuntu_old_sourcelist (OS_Is_Debian_Literally);
/** /**
* CDROM源的sourcelist * CDROM源的sourcelist
@ -128,7 +130,7 @@ os_debian_setsrc (char *option)
system ("rm " OS_Debian_old_SourceList); system ("rm " OS_Debian_old_SourceList);
chsrc_warn2 ("旧版源配置文件中使用了 CDROM 源,已删除(但备份)该配置文件,重新配置"); chsrc_warn2 ("旧版源配置文件中使用了 CDROM 源,已删除(但备份)该配置文件,重新配置");
/* 现在的情况是:系统中已经没有配置文件了 */ /* 现在的情况是:系统中已经没有配置文件了 */
sourcelist_exist = ensure_apt_sourcelist (OS_Is_Debian_Literally); sourcelist_exist = ensure_debian_or_ubuntu_old_sourcelist (OS_Is_Debian_Literally);
} }
} }

View File

@ -6,7 +6,7 @@
* Contributors : Zhao <1792582687@qq.com> * Contributors : Zhao <1792582687@qq.com>
* | * |
* Created On : <2023-08-30> * Created On : <2023-08-30>
* Last Modified : <2024-12-18> * Last Modified : <2025-03-25>
* ------------------------------------------------------------*/ * ------------------------------------------------------------*/
static SourceProvider_t os_ubuntu_upstream = static SourceProvider_t os_ubuntu_upstream =
@ -46,13 +46,13 @@ os_ubuntu_getsrc (char *option)
return; return;
} }
if (chsrc_check_file (OS_Apt_SourceList)) if (chsrc_check_file (OS_Ubuntu_old_SourceList))
{ {
chsrc_view_file (OS_Apt_SourceList); chsrc_view_file (OS_Ubuntu_old_SourceList);
return; return;
} }
char *msg = CliOpt_InEnglish ? "Source config file missing! However, you can still run `chsrc set ubuntu` to add and use new sources" char *msg = CliOpt_InEnglish ? "Source list file missing! However, you can still run `chsrc set ubuntu` to add and use new sources"
: "缺少源配置文件!但仍可直接通过 chsrc set ubuntu 来添加使用新的源"; : "缺少源配置文件!但仍可直接通过 chsrc set ubuntu 来添加使用新的源";
chsrc_error2 (msg); chsrc_error2 (msg);
return; return;
@ -98,31 +98,33 @@ os_ubuntu_setsrc (char *option)
if (chsrc_check_file (OS_Ubuntu_SourceList_DEB822)) if (chsrc_check_file (OS_Ubuntu_SourceList_DEB822))
{ {
char *msg = CliOpt_InEnglish ? "Will change source based on new format" char *msg = CliOpt_InEnglish ? "Will change source based on new format"
: "将基于新格式换源"; : "将基于新格式(DEB822)换源";
chsrc_note2 (msg); chsrc_note2 (msg);
os_ubuntu_setsrc_for_deb822 (option); os_ubuntu_setsrc_for_deb822 (option);
return; return;
} }
bool sourcelist_exist = ensure_apt_sourcelist (OS_Is_Ubuntu); chsrc_note2 ("将基于旧格式(非DEB822)换源");
bool sourcelist_exist = ensure_debian_or_ubuntu_old_sourcelist (OS_Is_Ubuntu);
chsrc_yield_source_and_confirm (os_ubuntu); chsrc_yield_source_and_confirm (os_ubuntu);
// 不存在的时候,用的是我们生成的无效文件,不要备份 /* 不存在的时候,用的是我们生成的无效文件,不要备份 */
if (sourcelist_exist) if (sourcelist_exist)
{ {
chsrc_backup (OS_Apt_SourceList); chsrc_backup (OS_Ubuntu_old_SourceList);
} }
char *arch = chsrc_get_cpuarch (); char *arch = chsrc_get_cpuarch();
char *cmd = NULL; char *cmd = NULL;
if (0==strncmp (arch, "x86_64", 6)) if (0==strncmp (arch, "x86_64", 6))
{ {
cmd = xy_strjoin (3, "sed -E -i \'s@https?://.*/ubuntu/?@", source.url, "@g\' " OS_Apt_SourceList); cmd = xy_strjoin (3, "sed -E -i \'s@https?://.*/ubuntu/?@", source.url, "@g\' " OS_Ubuntu_old_SourceList);
} }
else else
{ {
cmd = xy_strjoin (3, "sed -E -i \'s@https?://.*/ubuntu-ports/?@", source.url, "-ports@g\' " OS_Apt_SourceList); cmd = xy_strjoin (3, "sed -E -i \'s@https?://.*/ubuntu-ports/?@", source.url, "-ports@g\' " OS_Ubuntu_old_SourceList);
} }
chsrc_run (cmd, RunOpt_Default); chsrc_run (cmd, RunOpt_Default);

View File

@ -52,7 +52,7 @@
* @return * @return
*/ */
bool bool
ensure_apt_sourcelist (int debian_type) ensure_debian_or_ubuntu_old_sourcelist (int debian_type)
{ {
bool exist = chsrc_check_file (OS_Apt_SourceList); bool exist = chsrc_check_file (OS_Apt_SourceList);