17个版本

0.2.16 2024年8月7日
0.2.15 2024年6月1日
0.2.12 2024年5月31日

#2 in #power-shell

Download history 893/week @ 2024-05-27 72/week @ 2024-06-03 22/week @ 2024-06-10 29/week @ 2024-07-01 136/week @ 2024-08-05

每月136次下载

MIT许可证

145KB
4K SLoC

Pact版本管理器 (pactup)

🚀 快速简单的Pact版本管理器,用Rust编写

Blazing fast!
NPM version Crates.io Version

特性

🌎 跨平台支持(macOS,Windows,Linux)

✨ 单个文件,易于安装,即时启动

🚀 速度优先构建

📂 与 .pact-version.pactrc 文件协同工作

安装

使用脚本(macOS/Linux)

对于 bashzshfish shell,有一个自动安装脚本

首先确保您的操作系统已安装 curlunzip。然后执行

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

然后,设置pactup的shell

使用发布二进制文件(Linux/macOS/Windows)

移除

要移除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