refactor(modules): 添加类型注解并优化 WSL 检测

- 全模块补全类型注解 (files, after_update, on_change)
- docker: 仅在 WSL 环境禁用 networkd-wait-online
- docker: 添加 _is_wsl() 自动检测函数
- zsh/docker: 改进错误输出使用 decman.error
- wsl-init: 统一使用 [[ ]] 并格式化代码
This commit is contained in:
2026-04-09 12:09:00 +08:00
parent 4182b3c300
commit b96e144e82
6 changed files with 54 additions and 35 deletions
+17 -17
View File
@@ -1,40 +1,40 @@
#!/bin/bash
set -euo pipefail
if [ "$(id -u)" -ne 0 ]; then
echo "❌ 请以 root 身份运行此脚本"
exit 1
if [[ "$(id -u)" -ne 0 ]]; then
echo "❌ 请以 root 身份运行此脚本"
exit 1
fi
USERNAME="${1:-}"
if [ -z "$USERNAME" ]; then
echo "用法: wsl-init.sh <用户名>"
echo "示例: wsl-init.sh imbytecat"
exit 1
if [[ -z "$USERNAME" ]]; then
echo "用法: wsl-init.sh <用户名>"
echo "示例: wsl-init.sh imbytecat"
exit 1
fi
echo "🔄 更新系统..."
pacman -Syu --noconfirm
if ! command -v sudo &> /dev/null; then
echo "📦 安装 sudo..."
pacman -S --needed --noconfirm sudo
if ! command -v sudo &>/dev/null; then
echo "📦 安装 sudo..."
pacman -S --needed --noconfirm sudo
fi
echo "🔐 配置 sudo 权限..."
cat > /etc/sudoers.d/10-wheel << 'EOF'
cat >/etc/sudoers.d/10-wheel <<'EOF'
%wheel ALL=(ALL) NOPASSWD: ALL
EOF
chmod 440 /etc/sudoers.d/10-wheel
echo "👤 创建用户 $USERNAME..."
if id "$USERNAME" &> /dev/null; then
echo "⏩ 用户 $USERNAME 已存在,确保 wheel 组成员"
usermod -aG wheel "$USERNAME"
if id "$USERNAME" &>/dev/null; then
echo "⏩ 用户 $USERNAME 已存在,确保 wheel 组成员"
usermod -aG wheel "$USERNAME"
else
useradd -m -G wheel -s /bin/bash "$USERNAME"
echo "请设置 $USERNAME 的密码:"
passwd "$USERNAME" < /dev/tty
useradd -m -G wheel -s /bin/bash "$USERNAME"
echo "请设置 $USERNAME 的密码:"
passwd "$USERNAME" </dev/tty
fi
echo ""