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

MIT 许可证

16KB
275

bagex

概述

bagex 作为程序入口,根据配置文件管理程序的环境变量。

配置

配置文件为 toml 格式,包含 3 部分: pathenvexe

  • 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,以便环境变量符合配置文件中的指定。

许可证

MIT

依赖关系

~8–19MB
~221K SLoC