Как-то мы с тобой познакомились с etckeeper, ну дак вот, есть еще такая штука — ChezMoi.

Это херня для управления dotfiles (конфигурационными файлами, которые обычно начинаются с точки, например, .bashrc, .vimrc, .gitconfig) на нескольких устройствах.

Я сейчас такие файлы просто в гит руками херачу. Из основного у меня это конфиг для вима и zshrc со всякими алиасами и настройками.

ChezMoi как раз всю эту рутину берет на себя. Из коробки есть синхронизация между устройствами, поддержка git, создание набора конфигураций для разных ОС, шаблоны и куча еще всякого.

На убунту ставится так: snap install chezmoi --classic

Для других операционок мануальчик здесь. Ну поставили и чо дальше? А дальше запускаем:

chezmoi init

Добавляем например .bashrc

chezmoi add ~/.bashrc

Эта команда скопирует bashrc в ~/.local/share/chezmoi/dot_bashrc Теперь отредактируй файл:

chezmoi edit ~/.bashrc

И посмотрим изменения:

chezmoi diff

То есть начала вестись история изменений, что довольно удобно. Теперь, например, ты запортачил свой .bashrc вследствие экспериментов, как откатиться?

Запускаем:

chezmoi -v apply

Нажимаешь к пример «o» = overwrite.

Хоба! И bashrc успешно восстанавливается. Прекрасно!

Теперь как с гитом работать:

chezmoi cd
git add .
git commit -m "Initial commit"
git remote add origin git@github.com:$GITHUB_USERNAME/dotfiles.git
git branch -M main
git push -u origin main

В принципе стандартная практика, первой командой переходим в каталог ~/.local/share/chezmoi ну а дальше база гита.

Затем на другой машине делаем:

chezmoi init https://github.com/$GITHUB_USERNAME/dotfiles.git

Конфиги успешно подтягиваются. Если репа приватная, то на официальном сайте есть чтиво как это настроить.

Я этим пользоваться не буду, мне привычнее свои поделки запускать. Но ты имей в виду, что существует такая пепяка.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Возможно, где-то прикрутишь chezmoi, и он облегчит трудовые будни.

Сайт проекта: https://www.chezmoi.io/ На гитхабе: https://github.com/twpayne/chezmoi