zsh, autoenv

Dec 23, 2016 20:10

А не спеть ли мне песню? А не спеть.
Хотел написать длинный пост с интригующим названием "Методология использования фреймворка сценариев Gulp в веб-разработке", но на пол-пути, как обычно, махнул рукой "да кому это надо... кому надо - тот сам все знает, а кому не надо - тому и так не надо".

В общем, вместо этого, быстро и кратко расскажу про autoenv.
В некоторых проектах возникает необходимость использовать переменные окружения.
Какие нибудь FTP_USER и FTP_PWD. Например для того, чтобы не светить в конфигах эти данные.
В том-же Gulp-е, делается:
var user = process.env.FTP_USER;
var password = process.env.FTP_PWD;
и можно больше не беспокоиться, что пароль случайно где нибудь засветится.
Неудобство этого метода в том, что эти переменные приходится инициализировать каждую сессию терминала.
Писать export FTP_USER=myftpuser;export FTP_PASSWORD=myftppass .
Или делать отдельный скрипт, которые эти переменные инициализирует.
А если проектов много - делать это каждый раз еще и для текущего проекта.

Но для zsh (и кажется для bash и fish) есть плагин, который называется autoenv.
Принцип его действия крайне прост - при входе в директорию, он вызывает файл .env, находящийся в корне этой директории.
Прямой аналог действия cd dir; source ./env , только автоматически.

Если в .env прописать те самые
export FTP_USER=foo
export FTP_PWD=bar

То они будут подхвачены автоматом, после cd .
И это ну просто очень, очень удобно при работе с большим количеством проектов.

Ставится плаг (в случае с zsh) просто:
$ git clone https://github.com/Tarrasch/zsh-autoenv ~/.dotfiles/lib/zsh-autoenv

И добавляется к массиву плагинов в ~/.zshrc
Previous post Next post
Up