Измените контекст gcloud
, вход az
, контекст Kubernetes, установите переменные среды и многое другое, просто изменив каталог.
В течение обычного рабочего дня мне часто приходится переключаться между двумя или даже тремя разными репозиториями, каждый со своим относительным gcloud
или az
или любой другой конфигурацией, контекстом Kubernetes и так далее.
Поначалу мне было очень неприятно и отнимало много времени на обратный поиск в истории команд, которые мне нужно было выполнить, чтобы иметь возможность выполнять свои задачи.
Разочарованный, я решил, что мне нужно найти способ автоматизировать эту скучную задачу, и придумал простое решение, которое не только экономит мне много времени, когда мне нужно переключить контекст, но и помогает мне отслеживать шаги, необходимые для достижения определенной конфигурации, на случай, если мне понадобится повторить ее в другом проекте.
После некоторого переполнения стека я создал эти очень простые функции zsh (переносимые в bash практически без усилий) для загрузки скрытых скриптов при смене каталога. В частности, две функции называются cda
(что означает cd
и активировать или что-то еще) и sayonara
(что означает до свидания на японском языке):
# sourcing hidden files on cd function cda() { local -a PATHS; PATHS=('.', '.vscode' '.idea') builtin cd "$@" || return for p ("$PATHS[@]"); do local hidden="${p}/.hidden.env" if [[ -f "$hidden" ]] then source $p fi done } # cleaning up when leaving, sourcing actions to do (like deactivate venv) function sayonara() { local -a PATHS; PATHS=('.', '.vscode' '.idea') for p ("$PATHS[@]"); do local hidden="${p}/.hidden.out.env" if [[ -f "$hidden"]] then source $p fi done if [[ "$#" -gt 0 ]] && local dest=("$@") || local dest=".." builtin cd $dest || return } alias sayo="sayonara"
Для краткости команде sayonara
также присвоен псевдоним sayo
.
Почему бы просто не переопределить компакт-диск?
Я мог назвать функцию cda
cd
и полностью получить скрытые файлы...