Где следует размещать зависящие от среды конфигурации для zsh?

Где следует размещать зависящие от среды конфигурации для zsh?

У меня есть репозиторий на github, в котором содержится большинство моих dot-файлов, включая такие файлы, как .zshrc.

Когда мне нужно перейти на новую среду разработки, мне просто нужно извлечь мои dot-файлы из github и убедиться, что они находятся в правильных местах.

Но иногда новая среда существенно отличается от старой, например, мне может потребоваться перейти с MacOS на какой-либо дистрибутив Linux.

Эти различия могут сделать мои конфигурации неверными, поэтому мне интересно, можно ли перенести все эти зависящие от среды конфигурации .zshrcи сохранить их в каких-то внешних файлах.

решение1

Вы можете загрузить дополнительные файлы в свой ~/.zshrcфайл с помощью source FILENAME.

У меня есть следующее, ~/.zshrcчтобы сделать это для всех файлов с .zshрасширением~/.zshrc.d

# load additional configuration
if [[ -d ~/.zshrc.d ]]; then
    for file in ~/.zshrc.d/*.zsh; do
        source "$file"
    done
    unset file
fi

Затем вы можете просто поместить туда только те файлы, которые вам нужны для конкретной среды.

Вы даже можете пойти дальше и создать подкаталог для каждой среды и загружать только нужную. Например, на основе содержимого $OSTYPE:

if [[ -d ~/.zshrc.d/${OSTYPE} ]]; then
    for file in ~/.zshrc.d/${OSTYPE}/*.zsh; do
        source "$file"
    done
    unset file
fi

Связанный контент