Філософія Dotfiles

3 хв. читання

Філософія Dotfiles

Привіт космонавти!

Сьогодні горю бажанням розповісти вам про таке явище як Dotfiles (Примітка: дотфайли, файли з крапками). Якщо ви не читали мою попередню статтю про Bash, то наполегливо рекомендую вам її прочитати, адже там викладені базові поняття, без яких буде важко ґрунтовно розібратись в речах, про які далі піде мова. В цій статті я розповім про практичне застосування тієї теорії, яку я виклав в моєму конспекті.

Передісторія

Коли я прийшов в світ \*nix-систем і відкрив для себе такий потужний інструмент як Bash, відразу прийшло бажання зробити щось, щоб полегшило моє життя. Тим більше яжпрограміст, а це означає, що я повинен лише думати, а програма повинна виконувати за мене чорну роботу. Сказано - зроблено. Кілька тижнів роздумів та чернеток в пісочниці і я почав писати свою надбудову над файлом ~/.bashrc, який в \*nix-системах містить налаштування командної оболонки для користувача.

Поступово назбиралось достатньо велика аморфна купа скриптів в ~/.bin і налаштувань та аліасів в ~/.bashrc, які я згодом виніс в окремий файл ~/.bash_profile. Підтримувати весь цей набір ставало все проблематичніше, тому було прийнято рішення все структурувати і поставити в репозиторій на GitHub.

Так я винайшов велосипед.

Що таке Dotfiles?

Приблизно тоді ж, я натрапив в Артема Сапеніна на цікаву річ - dotfiles. Це був такий-собі набір всіляких цукерочок для консолі. Справа в тому, що чистий інтерактивний режим в Bash, сам по собі, достатньо сирий. Тому людий й пишуть для себе зручні оточення з безліччю аліасів, функцій, та всього, що душа забажає, і публікують у вигляді дотфайлів. Згодом ця ідея вилилась у цілу течію, основні ідеї якої підхопили в GitHub і навіть описали цілий маніфест GitHub ❤ ~/.

Codeguida ❤ Dotfiles

Коли я потрапив в Codeguida, виникла потреба якось уніфікувати робочий процес і тут дотфайли стали нам в нагоді. Я написав зручне і водночас потужне середовище, яке зробило роботу з такими звичними інструментами як Git, Django, Virtualenv в рази швидшою та приємнішою.

В кінцевому результаті вийшло щось таке:

Terminal App

Якщо розглядати код, то наші дотфайли є сплавом 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"

Ресурси

Основним і найбільшим недоліком дотфайлів є те, що всі вони заточені під конкретні потреби власних авторів, тому, скоріш за все, ви не зможете відразу встановити чиїсь дотфайли і користуватись ними - вам доведеться копирсатись в вихідних кодах та витягувати з них щось корисне для себе.

Нижче я наведу кілька посилань, які стануться в нагоді як написання власних дотфайлів, так і для розширення кругозору:

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 4.8K
Приєднався: 10 місяців тому
Коментарі (2)
Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація