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 在 配置
52 每月下载量
20KB
398 行
钉子
钉子是由Assemble团队开发的一个简单工具,用于简化环境变量的管理。钉子支持两种应用环境变量的方式(通过print
和session
子命令),您可以选择您喜欢的方式。在这个过程中,钉子将设置并递增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 list
或dingus ls
以查看可以提供给打印和会话子命令的--config
参数的选项。
钉子打印示例
运行 dingus print -c example_1
。看看dingus
是如何找到我们创建的example.yaml
文件,读取其内容并打印出一条命令?这条命令可以通过source -
管道直接设置到当前shell会话中。很酷,对吧?dingus
通过查看你的$SHELL
变量,知道你正在运行哪个shell,并打印出适合该shell语法的命令。我只在fish
和bash
shell中测试过,所以我不确定它对所有shell是否都适用(实际上,我知道它并不适用)。如果你发现它不起作用,请告诉我你的shell应该使用什么语法,我会把它加入进去。
将变量应用到你的shell中的完整命令是dingus print -c example_1 | source -
。通常不建议将任何内容管道到source -
中,因为它可能会打开远程代码执行漏洞,但你在生产服务器上没有这样做,所以没问题(对吧?)。
看看这个:echo $HELLO
和echo $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