Files
gitea-downloader/install.sh
2025-07-27 20:21:31 +08:00

102 lines
3.3 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
#
# install.sh - Gitea 交互式下载器一键安装脚本
#
# 这个脚本会自动下载、安装并配置 gitea.sh使其成为一个系统级的命令 'gitea'。
# --- 配置 ---
DOWNLOAD_URL="https://git.zyj.best/theshy/gitea-downloader/raw/branch/main/gitea.sh"
INSTALL_DIR="/usr/local/bin"
INSTALL_NAME="gitea"
TARGET_PATH="${INSTALL_DIR}/${INSTALL_NAME}"
# --- 辅助函数 ---
_print() {
local color_code="$1"; shift
if [ -t 1 ]; then printf "\e[${color_code}m%s\e[0m\n" "$@"; else printf "%s\n" "$@"; fi
}
info() { _print "34" "$@"; }
success() { _print "32" "$@"; }
error() { >&2 _print "31" "$@"; }
warning() { _print "33" "$@"; }
# --- 主逻辑 ---
main() {
# 1. 权限检查
local SUDO_CMD=""
if [[ $EUID -ne 0 ]]; then
if ! command -v sudo &> /dev/null; then
error "错误: 本脚本需要 root 权限来安装文件到 ${INSTALL_DIR}"
error "请以 root 用户身份运行,或安装 'sudo' 后重试。"
exit 1
fi
SUDO_CMD="sudo"
fi
info "权限检查通过。将使用 '${SUDO_CMD}' 来执行需要提升权限的命令。"
# 2. 依赖检查
if ! command -v curl &> /dev/null; then
error "错误: 核心依赖 'curl' 未找到。请先安装 curl 后再运行此脚本。"
warning " - Debian/Ubuntu: sudo apt-get install curl"
exit 1
fi
# 3. 检查是否已安装
if [ -f "$TARGET_PATH" ]; then
warning "检测到 '${TARGET_PATH}' 已存在。"
read -r -p "是否要覆盖它? [y/N] " choice
case "$choice" in
y|Y )
info "好的,将覆盖现有版本。"
;;
* )
error "操作取消。"
exit 1
;;
esac
fi
# 4. 下载主脚本到临时文件
info "\n步骤 1/3: 正在从您的 Gitea 仓库下载主脚本..."
local TEMP_FILE
TEMP_FILE=$(mktemp)
curl -L --fail -o "$TEMP_FILE" "$DOWNLOAD_URL" || {
error "\n下载失败"
error "请检查 URL 是否正确,以及网络连接是否正常。"
error "URL: ${DOWNLOAD_URL}"
rm -f "$TEMP_FILE"
exit 1
}
success "主脚本下载成功!"
# 5. 安装脚本
info "\n步骤 2/3: 正在安装脚本到 ${TARGET_PATH}..."
# 赋予执行权限
chmod +x "$TEMP_FILE"
# 移动到系统路径
$SUDO_CMD mv "$TEMP_FILE" "$TARGET_PATH" || {
error "\n无法将脚本移动到 ${TARGET_PATH}"
error "请检查您是否有足够的权限。"
rm -f "$TEMP_FILE"
exit 1
}
success "脚本安装成功!"
# 6. 最终提示
info "\n步骤 3/3: 完成!"
success "\n祝贺您Gitea 交互式下载器已成功安装。"
info "您现在可以在系统的任何位置使用 'gitea' 命令了。"
warning "\n下一步操作:"
warning " 1. 打开一个新的终端,或者运行 'source ~/.bashrc' (取决于您的 shell)。"
warning " 2. 运行以下命令开始使用:"
info " gitea down"
warning " 3. 首次运行时,它会引导您完成 Gitea URL 和 Token 的配置。"
warning " (它还会自动检查并提示安装 jq 和 fzf 等依赖)"
}
# --- 脚本入口 ---
main