Skip to content

Commit 7508cd9

Browse files
committed
fix(hammerspoon): 修复zsh兼容性问题并改进init.lua查找逻辑
修复脚本在zsh中的路径获取问题,将${BASH_SOURCE[0]}替换为$0以确保兼容性 改进init.lua文件的查找逻辑,支持多个可能的位置并给出更详细的错误信息
1 parent d360962 commit 7508cd9

1 file changed

Lines changed: 23 additions & 6 deletions

File tree

macos/hammerspoon/load_scripts.zsh

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ BLUE='\033[0;34m'
1313
NC='\033[0m' # No Color
1414

1515
# 获取脚本所在目录
16-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16+
# 使用 $0 而不是 ${BASH_SOURCE[0]} 以确保在 zsh 中正确工作
17+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
1718
HAMMERSPOON_CONFIG_DIR="$HOME/.hammerspoon"
1819

1920
echo -e "${BLUE}🔨 Hammerspoon Lua Scripts Loader${NC}"
@@ -48,11 +49,27 @@ echo -e "${BLUE}📝 生成新的init.lua配置文件${NC}"
4849

4950
# 复制 init.lua 配置文件
5051
echo "📋 复制 init.lua 配置文件..."
51-
if [ -f "$SCRIPT_DIR/init/init.lua" ]; then
52-
cp "$SCRIPT_DIR/init/init.lua" "$HAMMERSPOON_CONFIG_DIR/init.lua"
53-
echo "✅ init.lua 配置文件已复制"
54-
else
55-
echo "❌ 错误: 找不到 init.lua 文件在 $SCRIPT_DIR"
52+
# 检查多个可能的init.lua位置
53+
INIT_LUA_PATHS=(
54+
"$SCRIPT_DIR/init/init.lua"
55+
"$SCRIPT_DIR/init.lua"
56+
)
57+
58+
INIT_LUA_FOUND=false
59+
for init_path in "${INIT_LUA_PATHS[@]}"; do
60+
if [ -f "$init_path" ]; then
61+
cp "$init_path" "$HAMMERSPOON_CONFIG_DIR/init.lua"
62+
echo "✅ init.lua 配置文件已复制 (来源: $(basename "$(dirname "$init_path")"))"
63+
INIT_LUA_FOUND=true
64+
break
65+
fi
66+
done
67+
68+
if [ "$INIT_LUA_FOUND" = false ]; then
69+
echo "❌ 错误: 找不到 init.lua 文件在以下位置:"
70+
for init_path in "${INIT_LUA_PATHS[@]}"; do
71+
echo " - $init_path"
72+
done
5673
exit 1
5774
fi
5875

0 commit comments

Comments
 (0)