5 个版本
0.2.3 | 2021年8月18日 |
---|---|
0.2.2 | 2021年8月12日 |
0.2.1 | 2021年8月3日 |
0.2.0 | 2021年7月31日 |
0.1.0 | 2021年7月27日 |
#35 in #配置 toml
16KB
275 行
bagex
概述
bagex
作为程序入口,根据配置文件管理程序的环境变量。
配置
配置文件为 toml 格式,包含 3 部分: path
、env
和 exe
。
path
:它是一个路径数组,当bagex
尝试查找可执行文件时,将 预置 到环境变量$PATH
中。env
:本部分创建多个从环境变量到某些可执行文件的“一对多”映射。exe
:本部分创建多个从可执行文件到某些环境变量的“一对多”映射。
示例配置可在此处找到:这里。
用法
bagex
以可执行文件名作为其参数,并在设置了环境变量 XDG_CONFIG_HOME
的情况下尝试从 $XDG_CONFIG_HOME/bagex/config.toml
读取其配置,否则尝试从 $HOME/.config/bagex/config.toml
读取。可以使用 -c|--config-file
指定要读取的配置文件。示例用法
$ cat config.toml
[env.answer_to_the_ultimate_question_of_life_the_universe_and_everything]
42 = [
"printenv",
]
[exe.printenv]
some_random_string = "YmFnZXgK"
pi = 3.14
$ bagex -c config.toml printenv
[..truncated..]
answer_to_the_ultimate_question_of_life_the_universe_and_everything=42
pi=3.14
some_random_string=YmFnZXgK
要为请求的可执行文件(如上述示例中的 printenv
)添加参数,请将参数追加到双横线(--
)之后
$ bagex -c ./config.toml bagex -- --version
bagex 0.1.0
使用 -|--dry-run
显示要运行的命令并中止
$ bagex -c ./config -d echo -- -en "Hello world!"
/sbin/echo "-en" "Hello world!"
用例
Systemd 服务
在systemd服务中设置进程的环境非常方便,但每次环境需要更改时,都必须在更改.service
文件后运行systemctl [--user] daemon-reload
,然后调用systemctl [--user] restart foo.service
以更新程序的运行环境。
bagex
通过在单独的配置文件中指定程序的环境,使得这个过程更加方便。每次在bagex
的配置中更改环境时,只需调用一次systemctl [--user] restart foo.service
。
应用程序启动器(如rofi、sxhkd等)
bagex
可以用作应用程序启动器的后端。bagex
提供的基本功能是一个带有环境管理模块的应用程序启动器。创建配置文件后,通过应用程序启动器调用bagex,以便环境变量符合配置文件中的指定。
许可证
依赖关系
~8–19MB
~221K SLoC