Skip to content

Instantly share code, notes, and snippets.

@denysdovhan
Created April 25, 2015 07:04
Show Gist options
  • Save denysdovhan/04e1484d4a124df4b6cc to your computer and use it in GitHub Desktop.
Save denysdovhan/04e1484d4a124df4b6cc to your computer and use it in GitHub Desktop.
Філософія Dotfiles

Філософія 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 protected]"
git config -f ~/.gitlocal user.name "Name Lastname"

Детальніше про їхні можливості ви можете почитати в документації:

Ресурси

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment