添加解压功能

This commit is contained in:
CN-JS-HuiBai
2026-04-16 21:55:49 +08:00
parent 5a06cf400b
commit d6ab7ddfad

View File

@@ -1,35 +1,62 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
# MinIO 目标路径
DEST="myminio/downloads/singbox" DEST="myminio/downloads/singbox"
echo "请输入 Gitea Actions 编译好的 zip 文件路径本地路径或URL" echo "请输入 Gitea Actions 编译好的 zip 文件路径本地路径或URL"
read -r FILE read -r FILE
# 判断 mc 是否可用 # mc 检查
if ! command -v mc >/dev/null 2>&1; then if ! command -v mc >/dev/null 2>&1; then
echo "错误mc 命令未安装" echo "错误mc 未安装"
exit 1
fi
# unzip 检查
if ! command -v unzip >/dev/null 2>&1; then
echo "错误unzip 未安装"
exit 1 exit 1
fi fi
# 如果是 URL先下载 # 如果是 URL先下载
if [[ "$FILE" =~ ^https?:// ]]; then if [[ "$FILE" =~ ^https?:// ]]; then
echo "检测到 URL开始下载..." echo "检测到 URL开始下载..."
TMP_FILE="/tmp/$(basename "$FILE")" TMP_ZIP="/tmp/$(basename "$FILE")"
curl -L "$FILE" -o "$TMP_FILE" curl -L "$FILE" -o "$TMP_ZIP"
FILE="$TMP_FILE" FILE="$TMP_ZIP"
fi fi
# 判断文件是否存在 # 校验文件
if [[ ! -f "$FILE" ]]; then if [[ ! -f "$FILE" ]]; then
echo "错误:文件不存在 -> $FILE" echo "错误:文件不存在 -> $FILE"
exit 1 exit 1
fi fi
echo "开始上传到 MinIO$DEST" # 创建临时解压目录
TMP_DIR=$(mktemp -d)
echo "解压到:$TMP_DIR"
mc cp "$FILE" "$DEST/" unzip -q "$FILE" -d "$TMP_DIR"
# 找到解压后的第一层目录(兼容 zip 内有/无顶层目录)
cd "$TMP_DIR"
# 如果只有一个目录,就进入它
FIRST_DIR=$(ls -1 | head -n 1)
if [[ -d "$FIRST_DIR" ]]; then
TARGET_DIR="$TMP_DIR/$FIRST_DIR"
else
TARGET_DIR="$TMP_DIR"
fi
echo "开始上传目录内容到 MinIO$DEST"
# 复制目录内所有内容(不是整个文件夹)
mc cp --recursive "$TARGET_DIR/" "$DEST/"
echo "上传完成 ✅" echo "上传完成 ✅"
# 清理
rm -rf "$TMP_DIR"