Філософія Dotfiles
Привіт космонавти!
Сьогодні горю бажанням розповісти вам про таке явище як Dotfiles (Примітка: дотфайли, файли з крапками). Якщо ви не читали мою попередню статтю про Bash, то наполегливо рекомендую вам її прочитати, адже там викладені базові поняття, без яких буде важко ґрунтовно розібратись в речах, про які далі піде мова. В цій статті я розповім про практичне застосування тієї теорії, яку я виклав в моєму конспекті.
Передісторія
Коли я прийшов в світ \*nix-систем і відкрив для себе такий потужний інструмент як Bash, відразу прийшло бажання зробити щось, щоб полегшило моє життя. Тим більше яжпрограміст, а це означає, що я повинен лише думати, а програма повинна виконувати за мене чорну роботу. Сказано - зроблено. Кілька тижнів роздумів та чернеток в пісочниці і я почав писати свою надбудову над файлом ~/.bashrc
, який в \*nix-системах містить налаштування командної оболонки для користувача.
Поступово назбиралось достатньо велика аморфна купа скриптів в ~/.bin
і налаштувань та аліасів в ~/.bashrc
, які я згодом виніс в окремий файл ~/.bash_profile
. Підтримувати весь цей набір ставало все проблематичніше, тому було прийнято рішення все структурувати і поставити в репозиторій на GitHub.
Так я винайшов велосипед.
Що таке Dotfiles?
Приблизно тоді ж, я натрапив в Артема Сапеніна на цікаву річ - dotfiles. Це був такий-собі набір всіляких цукерочок для консолі. Справа в тому, що чистий інтерактивний режим в Bash, сам по собі, достатньо сирий. Тому людий й пишуть для себе зручні оточення з безліччю аліасів, функцій, та всього, що душа забажає, і публікують у вигляді дотфайлів. Згодом ця ідея вилилась у цілу течію, основні ідеї якої підхопили в GitHub і навіть описали цілий маніфест GitHub ❤ ~/.
Codeguida ❤ Dotfiles
Коли я потрапив в Codeguida, виникла потреба якось уніфікувати робочий процес і тут дотфайли стали нам в нагоді. Я написав зручне і водночас потужне середовище, яке зробило роботу з такими звичними інструментами як Git, Django, Virtualenv в рази швидшою та приємнішою.
В кінцевому результаті вийшло щось таке:
Якщо розглядати код, то наші дотфайли є сплавом Artem Sapegin's dotfiles, Mathias's dotfiles, моїх старих скриптів та хелперів, який заточений під Ubuntu-based дистрибутиви.
Наші дотфайли вміють таке:
- Мають кольоровий та розумний рядок запрошення Bash, корисні аліаси та багато іншого
- Опитимальний Git конфіг, глобальний gitignore файл та зручні аліаси
- Дотфайли автоматично синхронізуються (
sync.py
) - Підсвічування статусу Git-репозиторію
- Підсвічування активованого virtual environment
- Конвертер кольорів: конвертує #HEX в RGB/RGBA та HSL/HSLA
- Changelog генератор
- Скрипт для додавання проміжків до Plank Dock
- Скрипт для оновлення системи, дотфайлів, Gems та NPM пакетів
- Корисні хелпери (
helpers/
)
Встановити їх на свою машину можна виконавши в терміналі команду:
wget -O - https://raw.githubusercontent.com/denysdovhan/dotfiles/master/installer.sh | bash
І не забудьте вказати Git хто ви з допомогою команд:
git config -f ~/.gitlocal user.email "email@yoursite.com"
git config -f ~/.gitlocal user.name "Name Lastname"
Ресурси
Основним і найбільшим недоліком дотфайлів є те, що всі вони заточені під конкретні потреби власних авторів, тому, скоріш за все, ви не зможете відразу встановити чиїсь дотфайли і користуватись ними - вам доведеться копирсатись в вихідних кодах та витягувати з них щось корисне для себе.
Нижче я наведу кілька посилань, які стануться в нагоді як написання власних дотфайлів, так і для розширення кругозору:
Коментарі (2)