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配置 分类中

Download history 131/week @ 2024-07-26 14/week @ 2024-08-02

145 每月下载量

ISC 许可证

92KB
2K SLoC

tyedev

white tyedev logo black tyedev logo

创建和管理 devcontainer 配置。

安装

推荐方法是使用 cargo binstall

$ cargo binstall tyedev

或者,下载适当的 发布资源。然后根据需要提取和复制。

$ shasum --check tyedev-*.sha256
$ tar -xzf tyedev-*.tar.gz
$ cp tyedev-*/tyedev ~/.local/bin

最后一种方法是使用带有 Github CLIredraw/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 --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 资源

依赖

~17–30MB
~489K SLoC