Snipper — маленький помощник программиста

Snipper — простое, консольное приложение, написанное на PHP, для удобного импорта фрагментов кода из популярного сервиса GitHub Gist.

Предыстория


В один прекрасный день я понял, что порядком задолбался переписывать мелкие файлы конфигураций из проекта в проект и стал искать ответ на вопрос — как избавить себя от страданий и не добавить новых?

Рассмотрев, как мне показалось, достаточное количество решений я взялся писать собственное консольное «приложение» для загрузки часто используемых файлов с кодом (речь идёт именно о файлах а не о работе с буфером обмена). Для хранения выбрал сервис от GitHub, так как в работе без него никак (готовых библиотек для работы с API великое множество), а для сипатичного внешнего вида — знакомый всем компонент Console из арсенала Symfony.

Чем не угодили существующие решения?

Найденные приложения, в основном, предназначены для копирования кода в буфер обмена и обладают графическим интерфейсом, необходимости в котором я совершенно не испытываю. Периодически требовалось загрузить файлы со стандартными настройками на удалённый сервер, что тоже довольно затруднительно при использовании «больших» утилит. Специфика моей работы предпологает наличие PHP и Composer на всех машинах где я обитаю, так что вывод напрашивался сам собой — сделать свой велосипед.

Кому это пригодится?


Использовать Snipper может кто угодно, но в силу того, что написан он на PHP — основными пользователями будут именно PHP-разработчики. Задумывался он как приятное дополнение к Composer, чтобы быстро собрать стартовый проект и начать работу.

В основном я пользуюсь им для импорта конфигураций текстовых редакторов и IDE которые поддерживают EditorConfig, для .env файлов, настроек самописных библиотек и даже для стандартной сборки клиентских компонентов с помощью Gulp.

Что умеет Snipper


На данный момент реализована только базовая функциональность, а именно — получение файла (или файлов, если их много в gist) по имени сниппета. Впрочем, этого более чем достаточно на текущий момент, чтобы начать использовать Snipper в бою.

Как работает?


Установка и настройка

Установить Snipper можно с помощью Composer:

composer g require snipper/snipper:@stable

После необходимо указать персональный токен доступа для комфортной работы с GitHub API:

snipper init <token>

Замечу, что на данный момент никаких прав давать не требуется, хотя в последующих версиях может быть необходимо разрешение на создание gist'ов.

Поиск сниппетов

Поиск ведется по всем gist'ам которые принадлежат вам и помечены звездочкой. В описание к gist нужно добавить имя сниппета предварив его «всеми любимым» хэш-символом. Искать нужно опустив хэш-символ, указав только имя.

Если у вас есть gist с описанием «EditorConfig #.editorconfig», то для получения сниппета достаточно выполнить следующую команду:

snipper get .editorconfig

В случае если найдено несколько сниппетов с одинаковым именем, Snipper предложит вам выбрать нужный из списка.

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

В заключение

Надеюсь Snipper принесет пользу не только мне. Ваши предложения и замечания я, с удовольствием, рассмотрю в описании проблем к репозиторию на GitHub. Спасибо за внимание!

Ссылки:
  • +11
  • 12,2k
  • 3
Поделиться публикацией

Комментарии 3

    0
    Думаю может быть полезно.
      0
      Согласен. Довольно интересно. Самому бывает нужно, часто обращаться к gist. Автору спасибо.
        +1
        Как думаете, может, стоит сделать вариант команды init, который бы просил токен в интерактивном режиме? Всё-таки не очень хорошо оставлять токены в консольной истории, как мне кажется.
        А за утилиту — спасибо! :)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое