17 个版本

0.2.7 2023年9月7日
0.2.6 2023年4月1日
0.2.5 2022年10月6日
0.2.3 2021年12月10日
0.1.4 2020年11月16日

#696 in 命令行工具

MIT 许可证

33KB
684

pad-path

直观地修改你的 $PATH.

Crates.io

安装

Windows (通过 Scoop)

# add the bucket containing pad-path's manifest
scoop bucket add jrhawley https://github.com/jrhawley/scoop-bucket

# install
scoop install pad-path

Nix

nix profile install github:jrhawley/pad-path

从源代码构建 (通过 Cargo)

# directly from crates.io
cargo install pad-path

# or, equivalently, after downloading the code repo
git clone https://github.com/jrhawley/pad-path
cd pad-path
cargo install --path .

用法

Intuitively modify your `$PATH`

USAGE:
    pad [SUBCOMMAND]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    add       Add a directory
    clean     Remove duplicates and non-existent directories [aliases: dedup]
    dn        Decrease priority for a directory [aliases: down, dec]
    help      Prints this message or the help of the given subcommand(s)
    ls        List the directories in PATH [aliases: echo]
    revert    Revert to a previous version of PATH [aliases: undo]
    rm        Remove a directory [aliases: del]
    up        Increase priority for a directory [aliases: inc]

直接修改 shell 的环境变量虽然方便但不安全。相反,pad-path 会打印出新的 $PATH 将会是什么样子,用户可以将其设置为 $PATH 的值,或者将其传递给另一个命令。

示例

在 Bash 中,以下是一个示例工作流程。

# display your current $PATH
> pad ls
/folder/to/remove
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

# preview what $PATH would look like if you remove the first folder
> pad rm /folder/to/remove
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

# set the new $PATH
> export PATH=$(pad rm /folder/to/remove)

# see that the new path is set
> echo $PATH
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

同样,在 PowerShell 中,您可以将 pad-path 命令的输出分配给 $Env:Path

# check the value of $Env:Path
> pad ls
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\WindowsPowerShell\v1.0
C:\WINDOWS\System32\OpenSSH
C:\Program Files\dotnet

# add a new variable to $Env:Path
> $Env:Path = (pad add "C:\Program Files\new_dir")

# check that the folder has been added correctly
> pad ls
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\WindowsPowerShell\v1.0
C:\WINDOWS\System32\OpenSSH
C:\Program Files\dotnet
C:\Program Files\new_dir

开发

编译

pad-path 设计用于在 Windows、macOS 和 Linux 操作系统上工作。为了为这些系统中的每一个编译二进制文件,我们使用了 cargo-make

要构建发布版本,运行

# for the OS you're working on
cargo make build-release

# for a specific OS
cargo make build-release-windows
cargo make build-release-macos
cargo make build-release-linux

# for all OS's
cargo make build-release-all

要创建 GitHub 上的标签和发布,我们使用了 GitHub CLI

测试

我们通常遵循 《Rust 编程语言》 中的测试思想。为了快速简洁地运行测试,我们使用了 cargo-nextest

# run all tests
cargo nextest run

# or, equivalently
cargo make test

依赖项

~1.8–7.5MB
~116K SLoC