Compare commits
1 Commits
v2026.04.1
...
main
| Author | SHA256 | Date | |
|---|---|---|---|
| ec1a37d18f |
@@ -156,9 +156,20 @@ SYSCTL
|
||||
}
|
||||
|
||||
env_check_apply_fixes() {
|
||||
(( ENV_CHECK_NEED_PACKAGES == 1 )) && { log_info '正在安装缺失软件包...'; _env_install_packages || return 1; }
|
||||
(( ENV_CHECK_NEED_STORAGE == 1 )) && { log_info '正在创建状态目录...'; mkdir -p "${IPF_STORAGE_DIR}"; chmod 750 "${IPF_STORAGE_DIR}"; }
|
||||
(( ENV_CHECK_NEED_SYSCTL == 1 )) && { log_info '正在写入 sysctl 配置并启用转发...'; _env_write_sysctl || return 1; }
|
||||
if (( ENV_CHECK_NEED_PACKAGES == 1 )); then
|
||||
log_info '正在安装缺失软件包...'
|
||||
_env_install_packages || return 1
|
||||
fi
|
||||
if (( ENV_CHECK_NEED_STORAGE == 1 )); then
|
||||
log_info '正在创建状态目录...'
|
||||
mkdir -p "${IPF_STORAGE_DIR}"
|
||||
chmod 750 "${IPF_STORAGE_DIR}"
|
||||
fi
|
||||
if (( ENV_CHECK_NEED_SYSCTL == 1 )); then
|
||||
log_info '正在写入 sysctl 配置并启用转发...'
|
||||
_env_write_sysctl || return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
env_check_all() {
|
||||
|
||||
@@ -126,4 +126,19 @@ export IPF_TEST_INPUTS=$'n\n'
|
||||
|
||||
assert_eq '3' "$(status_of env_check_all)" 'env_check_all should return 3 when user rejects autofix'
|
||||
|
||||
# Regression: env_check_apply_fixes must return 0 even when the last flag is 0.
|
||||
# 之前写成 `(( NEED_SYSCTL == 1 )) && { ... }`,NEED_SYSCTL=0 时函数返回 1,
|
||||
# 外层 set -e 直接把脚本打死。
|
||||
ENV_CHECK_NEED_PACKAGES=1
|
||||
ENV_CHECK_NEED_STORAGE=0
|
||||
ENV_CHECK_NEED_SYSCTL=0
|
||||
assert_eq '0' "$(status_of env_check_apply_fixes)" \
|
||||
'env_check_apply_fixes should return 0 when only some fixes are needed'
|
||||
|
||||
ENV_CHECK_NEED_PACKAGES=0
|
||||
ENV_CHECK_NEED_STORAGE=0
|
||||
ENV_CHECK_NEED_SYSCTL=0
|
||||
assert_eq '0' "$(status_of env_check_apply_fixes)" \
|
||||
'env_check_apply_fixes should return 0 when no fixes are needed'
|
||||
|
||||
pass 'test_env_check.sh'
|
||||
|
||||
Reference in New Issue
Block a user