Переосмысление Dotfiles

12 мая 2013, 22:58

Увидел как-то у Артёма Сапегина занятную вещь — Dotfiles. Это такой набор разных ништяков для любителей консоли. В OS X встроенный баш, по сравнению со многими линуксами, достаточно унылый. Вот и делают люди под себя удобное окружение с кучей алиасов, функций, приложений, автокомплитов и прочими радостями, которые потом публикуют в виде дотфайлсов.

Наиболее интересные собраны тут http://dotfiles.github.io.

У меня по долгу службы тоже накопился список разных удобств, состоявший из кучи баш-скриптов в /usr/local/bin и алиасов в ~/.bashrc. Решил всё собрать, аккуратно организовать, сделать установщик — в общем как у всех. Но не тут-то было.

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

Мне же хотелось сделать что-нибудь универсальное: нужно — установил. Так и родилась идея сделать пакетный менеджер для дотфайлсов.

Установка

Для установки нужна OS X, так как используется пакетный менеджер homebrew. Позже добавлю поддержку deb-подобных ОС, всё же на серверах такая штука не помешает.

curl -Ls dotfiles.gleero.com | bash

Во время установки вас попросят отметить модули, которые нужно установить. Дотфайлс по-умолчанию установится в вашу домашнюю папку: ~/dotfiles/

Обновление и удаление

Для обновления до последней версии рекомендуется использовать

dotfiles update

А для удаления —

dotfiles remove

Модули

Все свои полезности я сгруппировал по модулям. На текущий момент их 9 (по ссылкам описание, документация и исходники):

Сейчас в разработке модули PythonTools, WebdevTools и Zsh.

Как видно, пользователь сам может выбрать то, что он хочет установить. Bash или Zsh; нужны ему подсветки синтаксиса для Nano, или он пользуется Vim’ом; нужны ему генераторы font-face и woff-шрифтов из ttf, или же virtualenv для питона — всё можно выбрать под себя.

Ништяки

Их не так много, но они действительно полезные. Часть взяты на просторах интернета, часть написаны вручную. Остановлюсь подробнее на последних.

Программы json и jsonselect

json получает в поток STD любой сжатый неотформатированный JSON, а выдаёт красивый, разноцветный, и с отступами.

jsonselect основана на библиотеке JsonSelect, которая может фильтровать JSON с помощью CSS-селекторов. Также принимает в STD любой JSON и фильтрует.

Например, мы хотим узнать список исполнителей в плейлисте http://tracksflow.com/2.0/api/playlists/3b6cbc12-99d6-4f1f-914e-f25ce7eec232. Открыв ссылку в браузере, замечаем огромную кучу разного мусора, мешающего нам получить исполнителей.

Теперь пишем в терминале:

curl -s http://tracksflow.com/2.0/api/playlists/3b6cbc12-99d6-4f1f-914e-f25ce7eec232 | jsonselect ".artistName" | json

Получаем JSON, передаём его в jsonselect и просим отдать всё по селектору «artistName». Вывод отдаём в программу json, которая красиво показывает результат. Всё.

Программа Quicklook

Открывает в родном маковском квиклуке любые данные. Есть же qlmanage, умеющий показывать любой файл. Но он определяет тип данных по расширению файла и не умеет читать файл из std. Мой же quicklook на лету определяет тип данных и правильно их показывает.

curl -s http://cs315327.vk.me/v315327003/8755/VzYcbNgtofE.jpg | quicklook

Neblo terminal

Собственно цветовая схема для терминала.

И ещё куча разных полезностей. Подробно о всех программах и возможностях написано на гитхабе.

Приватные конфиги

Начал я заметку с того, что хорошо бы свои приватные данные держать при себе. Так вот в папке с дотфайлсами можно наблюдать выделенную цветом папочку private, в которой лежат две болванки: aliases.sh и bash_profile.sh. Но можно создавать и другие, так как при открытии нового терминала подключаются все шелл-скрипты из private.

А приложения можно класть в папку bin, которая добавлена в PATH.

Создание своего модуля

Создавать свои модули просто:

cd ~/dotfiles/modules
dfmod init test

Будет создан модуль с названием `test` и заготовкой. Подробная информация об устройстве модуля есть как в свежесозданном модуле (в виде комментариев), так и на гитхабе.

Модулем можно поделиться на гитхабе, установить его будет очень просто:

cd ~/dotfiles/modules/
git clone <ЛЮБОЙ_МОДУЛЬ>
dfmod install <МОДУЛЬ>

А можно пуллреквестить :-)

Заключение

Всё ещё сыро. Баги постоянно фиксятся, возможности постоянно добавляются. Но сейчас настало то время, когда можно поделиться проектом с людьми.

В ближайшем будущем планируется добавить несколько новых модулей, а также перевод документации на английский. Код частично уже переведён.

Пользуйтесь. http://github.com/gleero/dotfiles

Редизайн блога       Ctrl       Облака в Айти

7 комментариев

Шувалов Антон

Здорово! Отличная идея)

Максим Гладких

Супер. Надо будет посмотреть.

Омич

Ыыыы

Хуев

Ахаха

Ты конченый

Ты конченый! Ништячки это твои опилки у тебя в голове, утырок. Ты обкуренный был когда это писал? Dotfiles — это конфиг твоей системы грубо говоря! Ясен хуй он будет разный у разных людей потому что dotfiles саму систему каждый затачиевает сам под себя! Удали свой сайт

Ты конченый

Пиздец нет слов блять

Ты конченый

Или выражайся правильно или учи что зачем нужно! PS извини за столь грубую критику но уже бесят те люди которые не разобравшись считают себя супер менами и начинаю учить других коряво! А потом ты за этими рукожопами все переделываешь!

Ваш комментарий

адрес не будет опубликован

ХТМЛ не работает


Ctrl + Enter