# Gitea 交互式下载器 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 一个功能强大且用户友好的命令行工具,用于通过交互式菜单浏览和下载私有 Gitea 仓库中的文件。 ## ✨ 功能特性 - **🚀 一键安装**: 只需一行命令即可完成下载和安装,无需手动配置。 - **🤖 交互式操作**: 通过 `fzf` 驱动的 TUI 菜单,轻松浏览和选择仓库及文件。 - **📂 多文件选择**: 使用 `Tab` 键即可选中多个文件,进行批量下载。 - **⚙️ 智能配置**: 首次运行自动引导配置 Gitea 地址和访问令牌,并安全地保存在 `~/.gitea_cli_config`。 - **🛡️ `sudo` 感知**: 无论您是普通用户还是通过 `sudo` 运行,脚本都能自动找到正确的配置文件。 - **📦 依赖自检**: 在 Debian/Ubuntu 系统上,能自动检测并提示安装 `jq` 和 `fzf` 等必要依赖。 - **🌍 全局命令**: 安装后即可在系统任何路径下使用 `gitea` 命令。 ## 🔧 环境依赖 - **核心依赖**: `curl` (安装脚本需要,主程序也需要) - **功能依赖**: `jq` (用于解析 JSON), `fzf` (用于生成交互式菜单) - **支持系统**: 主要为 Linux (在 Debian/Ubuntu 上支持依赖自动安装)。在 macOS 或其他 Linux 发行版上,您可能需要手动安装 `jq` 和 `fzf`。 ## 🚀 安装 您只需要在终端中运行以下一行命令,即可完成所有安装和配置: ```bash curl -sL https://git.zyj.best/theshy/gitea-downloader/raw/branch/main/install.sh | bash ``` 此命令会: 1. 下载最新的 `install.sh` 安装脚本。 2. 通过管道 `|` 交给 `bash` 直接执行。 3. 安装脚本会自动下载主程序 `gitea.sh`,将其重命名为 `gitea` 并移动到 `/usr/local/bin` 目录下,使其成为一个全局命令。 ## 💡 如何使用 安装完成后,即可开始使用。 1. **启动工具** 在终端中输入以下命令: ```bash gitea down ``` 2. **首次配置** 如果是第一次运行,脚本会提示您输入: - 您的 Gitea 实例 URL (例如 `https://git.example.com`) - 您的 Gitea Access Token (访问令牌) > **注意**: Access Token 需要至少拥有 `read:repository` 和 `read:user` 的权限。请在 Gitea 网站的 `设置 -> 应用` 页面生成。 3. **交互式选择** - **选择仓库**: 脚本会列出您的所有仓库,使用 `↑` `↓` 方向键导航,按 `Enter` 确认。 - **选择文件**: 接着会列出所选仓库中的所有文件。 - 使用 `↑` `↓` 导航。 - 使用 `Tab` 键选中或取消选中一个文件(选中的会高亮)。 - 按 `Enter` 键确认选择,开始下载。 ## 🛠️ 工作原理 本项目包含两个核心脚本: 1. `install.sh`: 一键安装脚本,负责将主程序部署到系统中。 2. `gitea.sh`: 主程序,负责与 Gitea API 交互、提供 TUI 菜单并执行下载任务。 所有用户配置(URL 和 Token)都存储在用户家目录下的 `~/.gitea_cli_config` 文件中,并设置了仅当前用户可读写的权限 (`600`) 以确保安全。 ## 🔄 更新 如果您想更新到最新版本的 `gitea` 工具,只需**重新运行一遍安装命令**即可。安装脚本会提示您是否覆盖现有版本。 ```bash curl -sL https://git.zyj.best/theshy/gitea-downloader/raw/branch/main/install.sh | bash ``` ## 🗑️ 卸载 如果您想从系统中移除此工具,请执行以下两个步骤: 1. **删除主程序文件**: ```bash sudo rm /usr/local/bin/gitea ``` 2. **删除配置文件** (此操作会移除您保存的 URL 和 Token): ```bash rm ~/.gitea_cli_config ``` ## ❓ 常见问题排查 - **问题: 运行 `gitea down` 后提示 "无法获取仓库列表" 或 "用户不存在"** - **原因**: 这几乎总是因为 Access Token 无效或权限不足。 - **解决方案**: 1. 请重新生成一个 Token,确保至少勾选了 `repository` 和 `user` 权限。 2. 运行 `gitea down`,在提示 `是否使用此配置?` 时输入 `reset`,然后输入您的新 Token。 - **问题: 安装后运行 `gitea` 提示 "command not found"** - **原因**: 您的 Shell 可能还没有加载新的命令路径。 - **解决方案**: 1. 尝试关闭当前终端,然后打开一个新的终端窗口。 2. 如果问题依旧,请检查 `/usr/local/bin` 是否在您的 `$PATH` 环境变量中 (`echo $PATH`)。 ## 📄 许可证 本项目采用 [MIT](https://opensource.org/licenses/MIT) 许可证。