From aad042803adc77d1ec771934a35ae80cce3ccbee Mon Sep 17 00:00:00 2001 From: Chao Li Date: Thu, 13 Aug 2026 21:30:29 +0800 Subject: [PATCH] fix: brace installer log variables --- scripts/install-launch-agent.sh | 2 +- tests/test_release_scripts.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/install-launch-agent.sh b/scripts/install-launch-agent.sh index 5821bc4..42db3e4 100755 --- a/scripts/install-launch-agent.sh +++ b/scripts/install-launch-agent.sh @@ -141,5 +141,5 @@ agentbar_remove_obsolete_log_file /tmp/agentbar.launchd.log agentbar_remove_obsolete_log_file /tmp/agentbar.launchd.err.log echo "已从源码目录安装并启动: $PLIST" -echo "日志: $STDOUT_LOG / $STDERR_LOG(权限 0600)" +echo "日志: ${STDOUT_LOG} / ${STDERR_LOG}(权限 0600)" echo "提示: 移动或删除源码目录后 LaunchAgent 将无法启动;独立安装请使用 DMG。" diff --git a/tests/test_release_scripts.py b/tests/test_release_scripts.py index 91bb6a7..5c98b93 100644 --- a/tests/test_release_scripts.py +++ b/tests/test_release_scripts.py @@ -48,6 +48,15 @@ def test_installer_is_atomic_and_has_failure_rollback(): assert "cat > \"$PLIST\"" not in installer +def test_installer_braces_variables_before_unicode_punctuation(): + installer = (SCRIPTS / "install-launch-agent.sh").read_text(encoding="utf-8") + + # In a UTF-8 locale Bash can treat full-width punctuation adjacent to an + # unbraced expansion as part of the variable name under `set -u`. + assert "${STDERR_LOG}(权限 0600)" in installer + assert "$STDERR_LOG(" not in installer + + def test_dmg_build_uses_locked_dependencies_and_cleans_temporary_outputs(): build = (SCRIPTS / "build-dmg.sh").read_text(encoding="utf-8") assert "uv.lock" in build