diff --git a/setup_cups.sh b/setup_cups.sh index 9b266f3..8b108e4 100755 --- a/setup_cups.sh +++ b/setup_cups.sh @@ -634,79 +634,6 @@ install_chinese_templates() { info "安装 CUPS 中文界面模板..." local templates_dir="/usr/share/cups/templates-zh_CN" - local gitee_base="https://gitee.com/yu-yon/S905L3A/raw/master/cups-templates-zh_CN" - - # 模板文件列表 - local templates=( - "add-class.tmpl" - "add-printer.tmpl" - "add-rss-subscription.tmpl" - "admin.tmpl" - "choose-device.tmpl" - "choose-make.tmpl" - "choose-model.tmpl" - "choose-serial.tmpl" - "choose-uri.tmpl" - "class-added.tmpl" - "class-confirm.tmpl" - "class-deleted.tmpl" - "class-jobs-header.tmpl" - "class-modified.tmpl" - "class.tmpl" - "classes-header.tmpl" - "classes.tmpl" - "command.tmpl" - "edit-config.tmpl" - "error-op.tmpl" - "error.tmpl" - "header.tmpl" - "help-header.tmpl" - "help-printable.tmpl" - "help-trailer.tmpl" - "job-cancel.tmpl" - "job-hold.tmpl" - "job-move.tmpl" - "job-moved.tmpl" - "job-release.tmpl" - "job-restart.tmpl" - "jobs-header.tmpl" - "jobs.tmpl" - "list-available-printers.tmpl" - "modify-class.tmpl" - "modify-printer.tmpl" - "norestart.tmpl" - "option-boolean.tmpl" - "option-conflict.tmpl" - "option-header.tmpl" - "option-pickmany.tmpl" - "option-pickone.tmpl" - "option-trailer.tmpl" - "pager.tmpl" - "printer-accept.tmpl" - "printer-added.tmpl" - "printer-confirm.tmpl" - "printer-default.tmpl" - "printer-deleted.tmpl" - "printer-jobs-header.tmpl" - "printer-modified.tmpl" - "printer-reject.tmpl" - "printer-start.tmpl" - "printer-stop.tmpl" - "printer.tmpl" - "printers-header.tmpl" - "printers.tmpl" - "restart.tmpl" - "samba-export.tmpl" - "samba-exported.tmpl" - "search.tmpl" - "set-printer-options-header.tmpl" - "set-printer-options-trailer.tmpl" - "subscription-added.tmpl" - "subscription-canceled.tmpl" - "test-page.tmpl" - "trailer.tmpl" - "users.tmpl" - ) # 先检查本地是否有模板目录 SCRIPT_DIR="$(cd "$(dirname "$0")" 2>/dev/null && pwd)" || SCRIPT_DIR="" @@ -718,26 +645,39 @@ install_chinese_templates() { cp -f "$SCRIPT_DIR/cups-templates-zh_CN/"*.tmpl "$templates_dir/" success "中文界面模板安装完成(本地)" else - # 从 Gitee 下载模板 + # 从 Gitee 下载模板(使用 zip 包方式,更可靠) info "从 Gitee 下载中文模板..." - mkdir -p "$templates_dir" - local success_count=0 - local total=${#templates[@]} + local tmp_dir=$(mktemp -d) + local zip_url="https://gitee.com/yu-yon/S905L3A/repository/archive/master.zip" - for tmpl in "${templates[@]}"; do - if wget -q -O "$templates_dir/$tmpl" "$gitee_base/$tmpl" 2>/dev/null; then - success_count=$((success_count + 1)) + # 下载仓库 zip 包 + if wget -q --show-progress -O "$tmp_dir/repo.zip" "$zip_url" 2>/dev/null || \ + curl -sL -o "$tmp_dir/repo.zip" "$zip_url" 2>/dev/null; then + + # 解压 + cd "$tmp_dir" + unzip -q repo.zip 2>/dev/null + + # 查找模板目录 + local extracted_dir=$(find . -type d -name "cups-templates-zh_CN" 2>/dev/null | head -1) + + if [ -n "$extracted_dir" ] && [ -d "$extracted_dir" ]; then + mkdir -p "$templates_dir" + cp -f "$extracted_dir"/*.tmpl "$templates_dir/" + local count=$(ls "$templates_dir"/*.tmpl 2>/dev/null | wc -l) + success "中文界面模板安装完成(已安装 $count 个文件)" + else + warn "解压后未找到模板目录" + rm -rf "$tmp_dir" + return 1 fi - # 显示进度 - echo -ne "\r 下载进度: $success_count/$total" - done - echo "" - if [ $success_count -gt 0 ]; then - success "中文界面模板安装完成(已下载 $success_count/$total 个文件)" + cd - > /dev/null + rm -rf "$tmp_dir" else warn "中文模板下载失败,界面将显示英文" + rm -rf "$tmp_dir" return 1 fi fi