17个版本
0.2.16 | 2024年8月7日 |
---|---|
0.2.15 | 2024年6月1日 |
0.2.12 | 2024年5月31日 |
#2 in #power-shell
每月136次下载
145KB
4K SLoC
Pact版本管理器 (pactup
)
🚀 快速简单的Pact版本管理器,用Rust编写
特性
🌎 跨平台支持(macOS,Windows,Linux)
✨ 单个文件,易于安装,即时启动
🚀 速度优先构建
📂 与 .pact-version
和 .pactrc
文件协同工作
安装
使用脚本(macOS/Linux)
对于 bash
,zsh
和 fish
shell,有一个自动安装脚本。
首先确保您的操作系统已安装 curl
和 unzip
。然后执行
curl -fsSL https://raw.githubusercontent.com/kadena-community/pactup/main/scripts/install.sh | bash
升级
升级 pactup
几乎与安装它一样简单。为了防止在您的shell配置文件中重复,请将 --skip-shell
添加到安装命令中。
参数
--install-dir
为 pactup 设置自定义安装目录。默认为 $XDG_DATA_HOME/pactup
(如果 $XDG_DATA_HOME
未定义,则在Linux上回退到 $HOME/.local/share/pactup
,在MacOS上回退到 $HOME/Library/Application Support/pactup
)。
--skip-shell
跳过将特定于shell的加载器添加到shell配置文件中,基于当前用户shell,在$SHELL
中定义。例如,对于Bash,$HOME/.bashrc
。对于Zsh,$HOME/.zshrc
。对于Fish - $HOME/.config/fish/conf.d/pactup.fish
示例
curl -fsSL https://raw.githubusercontent.com//main/scripts/install.sh | bash -s -- --install-dir "./.pactup" --skip-shell
手动
使用Cargo(Linux/macOS/Windows)
cargo install pactup
使用Npm(Linux/macOS/Windows)
npm install -g pactup
使用发布二进制文件(Linux/macOS/Windows)
- 下载适用于您系统的最新发布二进制文件(点击此处)
- 将其在
PATH
环境变量中设置为全局可用 - 设置pactup的shell
移除
要移除pactup(😢),只需删除您主目录中的.pactup
文件夹。您还应该编辑您的shell配置以删除对pactup的所有引用(即阅读Shell Setup,并执行相反的操作)。
完成
pactup与二进制文件一起提供其完成功能
pactup completions --shell <SHELL>
其中<SHELL>
可以是受支持的shell之一
bash
zsh
fish
power-shell
请按照您的shell说明进行安装。
Shell Setup
在使用pactup之前,需要设置环境变量。这是通过评估pactup env
的输出来完成的。
[!NOTE] 查看配置部分(点击此处)以启用高度推荐的功能,如自动版本切换。
向您的项目添加.pact-version
非常简单
$ pact --version
pact version 4.11.0
$ echo "4.11" > .pact-version
查看以下针对您所使用的shell的指南
Bash
将以下内容添加到您的.bashrc
配置文件中
eval "$(pactup env --use-on-cd)"
Zsh
将以下内容添加到您的.zshrc
配置文件中
eval "$(pactup env --use-on-cd)"
Fish shell
创建~/.config/fish/conf.d/pactup.fish
,将其添加到其中
pactup env --use-on-cd | source
PowerShell
将以下内容添加到配置文件末尾
pactup env --use-on-cd | Out-String | Invoke-Expression
- 对于macOS/Linux,配置文件位于
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- 在Windows中,您可以在PowerShell中运行以下内容来编辑您的配置文件
notepad $profile
Windows命令提示符即Batch即WinCMD
pactup也受支持,但并非全部覆盖。您可以为启动脚本设置一个启动脚本并添加以下行
@echo off
:: for /F will launch a new instance of cmd so we create a guard to prevent an infnite loop
if not defined PACTUP_AUTORUN_GUARD (
set "PACTUP_AUTORUN_GUARD=AutorunGuard"
FOR /f "tokens=*" %%z IN ('pactup env --use-on-cd') DO CALL %%z
)
Cmder的使用
使用方法与正常的WinCMD安装非常相似,但需要进行一些调整以允许从cmder启动脚本中调用。以下示例假设CMDER_ROOT
环境变量已设置为您的Cmder安装的根目录。然后您可以这样做
- 创建一个.cmd文件来调用它
:: %CMDER_ROOT%\bin\pactup_init.cmd
@echo off
FOR /f "tokens=*" %%z IN ('pactup env --use-on-cd') DO CALL %%z
- 将其添加到启动脚本中
:: %CMDER_ROOT%\config\user_profile.cmd
call "%CMDER_ROOT%\bin\pactup_init.cmd"
您可以用任何其他方便的路径替换 %CMDER_ROOT%
。
配置
用法
贡献
欢迎提交 PR 🎉
开发
# Install Rust
git clone https://github.com/kadena-community/pactup
cd crates/pactup
cargo build
运行二进制文件
cargo run -- --help # Will behave like `pactup --help`
运行测试
cargo test
注意
- 由于 Pact 本身不支持 Windows,因此 Windows 不受支持。
- Pact 的二进制文件存在问题;它们在每个版本中都不一致,并且通常版本会缺少二进制文件。例如,最新版本 4.12 在 GitHub 上没有任何 Mac 二进制文件。预期会出现一些问题。
致谢
Pact 版本管理器是从惊人的 fnm 代码库移植的。
依赖
~23–59MB
~1M SLoC