8 个版本
0.3.4 | 2024年7月30日 |
---|---|
0.3.3 | 2024年2月27日 |
0.3.2 | 2024年1月4日 |
0.2.0 | 2023年11月26日 |
0.1.1 | 2023年11月26日 |
#33 在 配置 分类中
145 每月下载量
92KB
2K SLoC
tyedev
创建和管理 devcontainer 配置。
安装
推荐方法是使用 cargo binstall。
$ cargo binstall tyedev
或者,下载适当的 发布资源。然后根据需要提取和复制。
$ shasum --check tyedev-*.sha256
$ tar -xzf tyedev-*.tar.gz
$ cp tyedev-*/tyedev ~/.local/bin
最后一种方法是使用带有 Github CLI 的 redraw/gh-install 扩展。
$ gh ext install redraw/gh-install
$ gh install CodeMan99/tyedev
用法
使用 --help
查看输入标志的帮助。
$ tyedev --help
Create and manage devcontainer configuration
Usage: tyedev [OPTIONS] [COMMAND]
Commands:
completions Generate shell auto-complete configuration
init Create new devcontainer
inspect Display details of a specific feature, template, or collection
list Overview of collections
search Text search the `id`, `keywords`, and `description` fields of templates or features
help Print this message or the help of the given subcommand(s)
Options:
-p, --pull-index Pull the index of features & templates
-v, --verbose... More output per occurrence
-q, --quiet... Less output per occurrence
-h, --help Print help
-V, --version Print version
所有命令都依赖于本地复制的 生成的 集合索引。
$ tyedev --pull-index --verbose
[2023-11-23T15:28:33.056Z INFO tyedev] Saved to /home/vscode/.local/share/tyedev/devcontainer-index.json
功能
tyedev 应用程序组织为子命令。
tyedev init
用于启动新项目。不提供任何参数以使用默认交互式体验。
$ tyedev init --help
Create new devcontainer
Usage: tyedev init [OPTIONS]
Options:
-z, --non-interactive Avoid interactive prompts
-s, --attempt-single-file Write to ".devcontainer.json" when using an `image` type template
-v, --verbose... More output per occurrence
-q, --quiet... Less output per occurrence
-r, --remove-comments Strip comments from the generated devcontainer.json
-t, --template-id <OCI_REF> Reference to a Template in a supported OCI registry
-f, --include-features <OCI_REF> Add the given features, may specify more than once
--include-deprecated Include deprecated results when searching
-w, --workspace-folder <DIRECTORY> Target workspace for the devcontainer configuration
-h, --help Print help
请注意,--remove-comments
还不支持。更好的 jsonc
库将很有帮助。可能需要自己编写。
tyedev inspect
描述特定模板或功能的全部细节。在编辑现有的 devcontainer.json
时用作辅助。
$ tyedev inspect --help
Display details of a specific feature, template, or collection
Usage: tyedev inspect [OPTIONS] <OCI_REF>
Arguments:
<OCI_REF> The `id` to inspect
Options:
-d, --display-as <FORMAT> Format for displaying the configuration [default: table] [possible values:
table, json, none]
--install-sh Read the `install.sh` script of a given feature
-v, --verbose... More output per occurrence
-q, --quiet... Less output per occurrence
--show-files List the filenames of a given feature or template
-h, --help Print help
存在 --show-files
选项,以帮助作者调试缺失文件问题。
存在 --install-sh
选项,用于调试容器创建失败。
tyedev list
列出集合概述。类似于 containers.dev/collections。
$ tyedev list --help
Overview of collections
Usage: tyedev list [OPTIONS]
Options:
-C, --collection-id <OCI_REF> Display a given collection, including features and templates
-v, --verbose... More output per occurrence
-q, --quiet... Less output per occurrence
-h, --help Print help
使用 --collection-id
选项显示给定集合的所有功能或模板。
$ tyedev list -q -C ghcr.io/codeman99/features
Name: Features by CodeMan99
Maintainer: Cody Taylor
Contact: https://github.com/CodeMan99/features/issues
Repository: https://github.com/CodeMan99/features
OCI Reference: ghcr.io/codeman99/features
┌───┬─────────┬────────────────┬──────────────┬───────────────────────────────────────────────────────────┐
│ │ Type │ OCI Reference │ Name │ Description │
├───┼─────────┼────────────────┼──────────────┼───────────────────────────────────────────────────────────┤
│ 1 │ feature │ ~/circleci-cli │ CircleCI CLI │ Install the CircleCI CLI. Also installs the CircleCI ext+ │
│ 2 │ feature │ ~/exercism-cli │ Exercism CLI │ Install the exercism-cli. │
└───┴─────────┴────────────────┴──────────────┴───────────────────────────────────────────────────────────┘
tyedev search
$ tyedev search --help
Text search the `id`, `keywords`, and `description` fields of templates or features
Usage: tyedev search [OPTIONS] <VALUE>
Arguments:
<VALUE> The keyword(s) to match
Options:
-c, --collection <COLLECTION> Match which section of the index [default: templates] [possible values:
templates, features]
-d, --display-as <FORMAT> Format for displaying the results [default: table] [possible values:
table, json]
-v, --verbose... More output per occurrence
-f, --fields <FIELD> Match only within the given fields [possible values: id, name,
description, keywords]
-q, --quiet... Less output per occurrence
--include-deprecated Display deprecated results
-h, --help Print help
示例:在 id 字段中仅查找具有 circleci-cli
的 功能,并以 json 格式输出。
$ tyedev search --quiet -d json -f id -c features circleci-cli | jq '.[1]'
{
"collection": "Features",
"id": "ghcr.io/codeman99/features/circleci-cli",
"version": "1.2.0",
"name": "CircleCI CLI",
"description": "Install the CircleCI CLI. Also installs the CircleCI extension for vscode.",
"keywords": null
}
非功能
此项目避免与 docker 或任何编辑器进行互操作。请参阅 相关工具 列表以完成运行时需求。
进行中
此项目绝对是进行中的项目。存在错误。需要编写更多文档。需要编写更多测试。需要审查通用设计模式。
贡献
如何帮助!
- 🔧 只需使用工具。 🗣️ 欢迎反馈。
- 🐛 报告错误。
- 📖 改进文档。
- 💻 直接贡献代码。
Devcontainer
对于代码贡献,请使用此项目的 devcontainer。
对于 /usr/local/cargo
存在一些需要解决的权限错误。已提交上游问题。目前请手动纠正。
$ sudo chmod -R g+w $CARGO_HOME
相关工具
devcontainer
- 官方 CLI 工具。主要用途是构建和执行容器。devcontainerx
- 非官方 CLI,用于改善使用 Visual Studio Code devcontainer 的体验。vscli
- 一个 CLI 工具,用于 启动 vscode 项目,支持 devcontainer。devcon
- 在没有 vscode 的情况下启动 devcontainer。devopen
- 一个简单的 bash 函数,可以从 WSL 目录中打开 devcontainer 项目。- 以及其他 devcontainer 生态系统中的支持工具。
通用 Devcontainer 资源
- VSCode 概述 文档。
- awesome-devcontainers 存储库。
依赖
~17–30MB
~489K SLoC