6 个版本

使用旧的 Rust 2015

0.1.5 2018年7月8日
0.1.4 2018年7月8日

#21 in #开发者工具

WTFPL 许可证

99KB
302

fbenv Crates

注意:早期alpha版本!

为什么我应该使用这个工具?

它是 direnv 但具有更广泛的适用范围。所以如果你想使用基于目录的环境,请使用 direnv,但如果你想为当前shell创建环境,可以使用 fbenv

先决条件

  • 通过 cargo install fbenv 安装
  • 可选 安装 fzf 以帮助完成 zsh 完成脚本

用法

  • 将文件 fbenv.toml 添加到您的家目录中
[environment1]
SOME_VAR = "foo"

[environment2]
SOME_VAR = "bar"
  • 手动使用
    • fbenv ls 显示所有环境的键
    • fbenv get environment1 将显示类似
      export FBENV=environment1;
      
      export SOME_VAR="foo";
      
    • 手动切换到指定环境
      • 评估 fbenv 的输出
        eval $(fbenv get environment1)
        
      • printenv | grep SOME_VAR 应返回 "foo"
    • 或通过 zsh 完成脚本

已知限制

  • 目前仅支持TOML表格
SOME_VAR = "blubb"

[environment1]
SOME_OTHER_VAR = "bla"

将忽略变量 SOME_VAR

ZSH 完成脚本

  • 安装 fzf 以在您的流程中添加额外的功能 :)
  • 将此添加到您的 zsh 配置中
if [[ -x "$(command -v fbenv)" ]];
then
  if [[ -x "$(command -v fzf)" ]];
  then
    eval $(fbenv print-zsh-setup --with-fzf 2>/dev/null);
  else
    eval $(fbenv print-zsh-setup 2>/dev/null);
  fi;
fi;
  • 现在您可以通过 switch-env 命令切换环境

grml ZSH

如果您幸运地使用了 grml zsh 配置,您可以向提示符中添加当前环境

function fb_env_prompt () {
  if [ -n "$FBENV" ];
  then
    REPLY="fbenv ~ $FBENV "
  else
    REPLY=""
  fi;
}

grml_theme_add_token longpath '%60<..<%~%<<' '%B' '%b
grml_theme_add_token magentahost '%m' '%F{magenta}' '%f'
grml_theme_add_token greenuser '%n' '%F{green}' '%f'
grml_theme_add_token gtprompt "»"
grml_theme_add_token space ' '
grml_theme_add_token fb-env -f fb_env_prompt '%F{cyan}' '%f'

zstyle ':prompt:grml:left:setup' items date space time fb-env change-root greenuser at magentahost newline gtprompt space

这看起来是这样的

2018-07-08 22:46:13 fbenv ~ environment1 user@host
» 

依赖项

~1.3–10MB
~68K SLoC