#env-var #shell #session #config-file #subcommand #management #env

app dingus

轻松将配置文件中加载的环境变量应用于shell会话

19个版本

0.5.7 2019年1月21日
0.5.6 2018年11月7日
0.5.5 2018年10月20日
0.4.2 2018年6月6日
0.3.6 2018年3月31日

#706配置

Download history 90/week @ 2024-03-31

52 每月下载量

MIT 许可证

20KB
398

钉子

钉子是由Assemble团队开发的一个简单工具,用于简化环境变量的管理。钉子支持两种应用环境变量的方式(通过printsession子命令),您可以选择您喜欢的方式。在这个过程中,钉子将设置并递增DINGUS_LEVEL环境变量,以便您可以跟踪您可能处于嵌套会话中的数量。

要求

钉子是用Rust编写的,可以在crates.io上从源代码构建。它也可以作为Homebrew Tap使用。

Homebrew 安装

brewtap davidarmstronglewis/dingus; brewinstall dingus

使用钉子

如果忘记了,钉子有一些内置的帮助信息,但这里有一个快速教程。

此文件应存在于~/.config/dingus/example_1.yaml,内容如下

HELLO: Hello World!
MULTI_LINE: "Hello there,
How are you?"

此文件应存在于~/.config/dingus/example_2.yaml,内容如下

HELLO: Hello, Dingus Session!

隐式配置文件

从版本0.4.2开始,如果未指定--config文件,钉子将向上递归地搜索一个.dingus Yaml文件。但如果您有保密信息,请不要将其提交到源代码控制。

钉子列表示例

从版本0.4.0开始,可以轻松查看可用的配置文件。尝试运行dingus listdingus ls以查看可以提供给打印和会话子命令的--config参数的选项。

钉子打印示例

运行 dingus print -c example_1。看看dingus是如何找到我们创建的example.yaml文件,读取其内容并打印出一条命令?这条命令可以通过source -管道直接设置到当前shell会话中。很酷,对吧?dingus通过查看你的$SHELL变量,知道你正在运行哪个shell,并打印出适合该shell语法的命令。我只在fishbashshell中测试过,所以我不确定它对所有shell是否都适用(实际上,我知道它并不适用)。如果你发现它不起作用,请告诉我你的shell应该使用什么语法,我会把它加入进去。

将变量应用到你的shell中的完整命令是dingus print -c example_1 | source -。通常不建议将任何内容管道到source -中,因为它可能会打开远程代码执行漏洞,但你在生产服务器上没有这样做,所以没问题(对吧?)。

看看这个:echo $HELLOecho $MULTI_LINE都包含了你在文件~/.config/dingus/example_1.yaml中设置的值。

dingus会话(Shell)示例

如果你不希望将环境变量污染到当前的shell会话中,dingus也支持为你打开一个新的会话。默认情况下,dingus将使用你的$SHELL变量所指向的命令,并假定它是一个有效的shell。

尝试运行dingus session -c example_2。你现在在一个新的shell会话中。尝试运行echo $HELLO。是的,我们已经应用了来自~/.config/dingus/example_2.yaml的变量,现在它们都可以访问。此外,任何你在进入Dingus会话之前设置的变量也可以使用,所以如果你刚刚在我们的“Dingus Print 示例”部分运行了示例,你会发现$MULTI_LINE仍然可用。

自版本0.3.7起 Dingus在尝试调用此子命令时也接受shell。这两个命令的语义足够接近,以至于它们可以成为别名。

依赖项

~5MB
~96K SLoC