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