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 命令行工具
33KB
684 行
pad-path
直观地修改你的 $PATH
.
安装
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