扩展 🆕

扩展 #

扩展是 tdl 的一项新功能,仍处于实验阶段,CLI 可能会在未来版本中发生变化。

如果你遇到任何问题或有任何建议,请在 GitHub 上创建 Issue

概览 #

tdl 扩展是与 tdl 核心无缝集成的独立工具。它们提供了一种扩展 tdl 核心的方法,但不需要将每个新功能添加到核心代码中。

tdl 扩展具有以下特点:

  • 它们可以添加和删除,而不会影响 tdl 核心。
  • 它们与 tdl 集成,并会显示在 tdl 命令和其他地方。

tdl 扩展位于 ~/.tdl/extensions,由 tdl extension 子命令控制。

使用以下命令快速体验 tdl 扩展:

tdl extension install iyear/tdl-whoami
tdl whoami

你可以看到 tdl-whoami 扩展的输出。详情请参阅 tdl-whoami

You are XXXXX. ID: XXXXXXXX

查找扩展 #

你可以通过浏览带有 tdl-extension 主题的代码库来查找扩展。

安装扩展 #

要安装扩展,请使用 extension install 子命令。

扩展有两种类型:

  • GitHub : 托管在 GitHub 代码库上的扩展。

    tdl extension install <owner>/<repo>

    要从私有代码库安装扩展,必须设置 GITHUB_TOKEN 环境变量为 GitHub 个人访问令牌(具有 Contents 读取权限)。

    export GITHUB_TOKEN=YOUR_TOKEN
    tdl extension install <owner>/<private-repo>
  • Local : 存储在本地计算机上的扩展。

    tdl extension install /path/to/extension

强制安装已经存在的扩展,请使用 --force 选项:

tdl extension install --force EXTENSION

一次安装多个扩展,请使用以下命令:

tdl extension install <owner>/<repo1> /path/to/extension2 ...

仅打印信息而不实际安装扩展,请使用 --dry-run 选项:

tdl extension install --dry-run EXTENSION

如果你已经安装了同名的扩展,安装将失败。例如,如果你已经安装了 foo/tdl-whoami,则必须在安装 bar/tdl-whoami 之前卸载它。

运行扩展 #

安装扩展后,可以像运行本地 tdl 命令一样运行扩展,使用 tdl EXTENSION-NAMEEXTENSION-NAME 是包含扩展的代码库的名称,去掉 tdl- 前缀。

例如,如果你从 iyear/tdl-whoami 代码库安装了扩展,可以使用以下命令运行扩展。

tdl whoami

运行扩展时,全局配置仍然可用。例如,以下命令在运行 tdl-whoami 扩展时指定命名空间和代理。

tdl -n foo --proxy socks5://localhost:1080 whoami

扩展自身的选项也可以使用。例如,以下命令在运行 tdl-whoami 扩展时启用详细模式。

请记住在扩展子命令之前写全局选项,在扩展子命令之后写扩展选项:

tdl <全局选项> <扩展名> <扩展选项>
tdl -n foo whoami -v

通常可以在包含扩展的代码库的 README 中找到有关如何使用扩展的具体信息。

查看已安装的扩展 #

要查看所有已安装的扩展,请使用 extension list 子命令。此命令将列出所有已安装的扩展及其作者和版本。

tdl extension list

更新扩展 #

要更新扩展,请使用 extension upgrade 子命令。将 EXTENSION 参数替换为扩展的名称。

tdl extension upgrade EXTENSION1 EXTENSION2 ...

更新所有已安装的扩展,请设置 EXTENSION 参数为空。

tdl extension upgrade

从 GitHub 私有代码库升级扩展,必须设置 GITHUB_TOKEN 环境变量为 GitHub 个人访问令牌(具有 Contents 读取权限)。

export GITHUB_TOKEN=YOUR_TOKEN
tdl extension upgrade EXTENSION

仅打印信息而不实际升级扩展,请使用 --dry-run 选项:

tdl extension upgrade --dry-run EXTENSION

卸载扩展 #

要卸载扩展,请使用 extension remove 子命令。将 EXTENSION 参数替换为扩展的名称。

tdl extension remove EXTENSION1 EXTENSION2 ...

仅打印信息而不实际卸载扩展,请使用 --dry-run 选项:

tdl extension remove --dry-run EXTENSION

开发扩展 #

请参阅 tdl-extension-template 代码库,了解如何为 tdl 创建、构建和发布扩展。