9 个版本 (4 个重大更改)
0.5.0 | 2022年11月25日 |
---|---|
0.4.0 | 2022年11月15日 |
0.3.1 | 2022年10月15日 |
0.3.0 | 2022年9月29日 |
0.1.1 | 2022年7月18日 |
#24 in #别名
76KB
1.5K SLoC
Vers
Vers 是一个命令行工具,旨在帮助管理您机器上的其他开发工具,支持从 GitHub 发布版进行安装(未来还将提供更多功能)。
入门指南
如果您已经安装了 Rust,则最快的安装方法是现在使用 cargo install vers。如果没有,请从 GitHub 发布版下载适用于您系统的最新版本。
使用以下命令设置您的 shell 环境:
# Shell can also be fish or zsh
$ vers env --shell bash >> ~/.bash_profile
export PATH="/Users/reynn/Library/Application Support/dev.reynn.vers/envs/global:$PATH"
安装您的第一个工具就像执行以下类似命令一样简单
# This will install the latest version of the GitHub CLI and alias it so you can call it using `gh`
# if no alias is provided the repository name is used
$ vers add cli/cli --alias gh
--> Installing tool cli/[email protected]
# You can use the --show (short: -S) flag to show a list of versions available and allows you to select one
$ vers add cli/cli --alias --show
--> Installing tool cli/[email protected]
Vers 有一个方法来自动检测适用于您系统的发布版中的资产,有时这会失败,因为文件命名没有标准化。要覆盖自动检测功能,请使用 --pattern (短:-p)
标志
# --pattern is a regular expression
$ vers add cli/cli --alias gh --file-filter '.+macos.+'
添加功能的最后一个重要事项是使用一个 --file-filter (短:-f)
,这在资产下载并提取后(或未提取)用于搜索生成的二进制文件。默认情况下,如果提供了别名或仓库名称,则为别名。
# --file-filter is also a regular expression
$ vers add jesseduffield/lazygit --alias lg --file-filter '^lg$'
由于仓库名称是 lazygit
但实际的二进制名称是 lg
,因此需要提供过滤器,以便 vers
可以找到提取的二进制文件。
环境
支持多个环境,但仍然处于早期阶段。
# the --pre-release (short: -P) flag can be used to include pre release versions in the results
$ vers --env betas add cli/cli --alias gh-beta --pre-release
目录结构
/Users/<USER>/Library/Application Support/dev.reynn.vers
├── envs
│ ├── global
│ │ └── # symlinks here to the correct version of the tool under ../../tools
│ └── global.json
└── tools
├── BurntSushi
│ └── RipGrep
│ └── 13.0.0
├── charmbracelet
│ └── glow
│ └── 1.4.1
├── ClementTsang
│ └── bottom
│ ├── 0.6.8
│ └── nightly
├── cli
│ └── cli
│ ├── 2.9.0
│ ├── 2.10.0
│ └── 2.10.1
├── digitalocean
│ └── doctl
│ └── 1.75.0
├── getzola
│ └── zola
│ └── 0.15.3
├── gohugoio
│ └── hugo
│ └── 0.98.0
├── jesseduffield
│ └── lazygit
│ ├── 0.34
├── junegunn
│ └── fzf
│ └── 0.30.0
├── k0sproject
│ └── k0sctl
│ └── 0.13.0-rc.2
├── lotabout
│ └── skim
│ └── 0.9.4
├── neovim
│ └── neovim
│ ├── 0.7.0
│ └── nightly
├── nushell
│ └── nushell
│ └── 0.62.0
├── ogham
│ └── exa
│ └── 0.10.1
├── sharkdp
│ ├── bat
│ │ └── 0.21.0
│ ├── fd
│ │ └── 8.3.2
│ ├── hexyl
│ │ └── 0.9.0
│ └── hyperfine
│ └── 1.14.0
├── TomWright
│ └── dasel
│ └── 1.24.3
├── uutils
│ └── coreutils
│ └── 0.0.13
├── XAMPPRocky
│ └── tokei
│ └── 12.1.2
└── zellij-org
└── zellij
└── 0.29.1
依赖项
~38–54MB
~1M SLoC