Что: 42b3d1b739b5f0cef40f349cdc7044a785dc604a Когда: 2024-03-24 11:47:19+03:00 ------------------------------------------------------------------------ Темы: zsh ------------------------------------------------------------------------ Более-менее активная работа с schwabrak-ом В bd94115b066472316ea03e85d611f732785f8b7c я упоминал о написании "issue tracker"-а на основе директорий и файлов, пригодного для использования без дополнительного софта, имея под рукой только Git. С парой коллег вот попытались его вести для нескольких проектов. Наверное ещё рано говорить об успехе или провале, но пока вроде отторжения ни у кого не вызывает это всё. Используем все написанные на Z shell утилиты мои. Много коммитов наделал в него, которые то тут, то там что-то упрощают при работе с ним. Разукрасил его вывод, обмазал цветами: всё же цвета ощутимо позволяют облегчить навигацию по тексту глазами. Изначально использовал supercat утилиту, но, оказалось, есть ещё компьютеры с настолько старой версией, где нет множества используемых мною опций. Написал свою версию supercat на zsh: # Usage: colourise ColourSpec:RegExp [ColourSpec:RegExp ...] # It is intended to be a drop-in replacement for supercat utility. # ColourSpec is comma delimited list of ANSI codes for colour setting. # Look for zsh'es Functions/Misc/colors documentation about possible # colour values. For example to set bold red on green background you use # "bold,fg-red,bg-green" as a ColourSpec. # RegExp is POSIX extended regular expression of the text you want to # colourise. colourise() { if [[ -n $NO_COLOR ]] || [[ $# -eq 0 ]] ; then cat return fi (( ${+colour} )) || { autoload -Uz colors ; colors ; } local lc=$'\e[' rc=m colr="" local spec=(${(s/:/)1}) shift for c (${(s/,/)${spec[1]}}) colr="${col}${lc}${colour[$c]}${rc}" local re=${(j/:/)spec[2,-1]} sed -E "s/${re}/${colr}&${reset_color}/g" | colourise $@ } Можно давать вот такие команды: colourise bold,fg-green,bg-magenta:"\d+" blue:"whatever regexp" перечисляя множество регулярок и опций для формирования ANSI разукрасок. Понравилось что вышло без кучи кода, переиспользуя colors модуль zsh и POSIX-совместимый sed с расширенными регулярками. Раньше не было команды "comment", ибо что в неё засунуть, если нужно всего-лишь открыть issues/.../comment файл и после редактирования добавить в Git? Но теперь она есть и позволяет предыдущий комментарий оставить в виде "#"-комментария, а после выхода из редактора удаляет его, добавляя в Git index. А если ничего не было отредактировано, то оставляет как было. "list" команда позволяет фильтровать по тагам. Причём не нужно указывать полное название тагов. "list star" покажет список задач у которых есть таги "assignee:stargrave". Если перед тагом написать "!", то будут показаны задачи у которых него его. "list starg \!done" -- все не сделанные задачи (у которых нет status:done тага) повешенные на меня. На работе используется сраный GitLab (сраный -- потому что не поддерживает SHA256 Git-репозитории, как минимум). Но в нём парой щелчков можно включить отсылку оповещений о коммитах с показом diff-а. Поэтому любой push в репозиторий с задачами -- оповещает на email всех участников. Пока мне очень нравится как с ним удаётся работать и лично мне ощутимо помогает уже с несколькими десятками задач. Кроме него, у меня ещё и личный issue tracker был, по которому очень легко было делать отчёты об удалённой работе (да, сдаём каждый месяц такое). С schwabrak-based tracker-ом можно давать ссылки на GitLab и на нужную директорию задачи, что было бы уже проблематично, если бы задачи находились в SQL/Recutils/Org-mode СУБД какой-нибудь. ------------------------------------------------------------------------ оставить комментарий: mailto:comment@blog.stargrave.org?subject=Re:%20%D0%91%D0%BE%D0%BB%D0%B5%D0%B5-%D0%BC%D0%B5%D0%BD%D0%B5%D0%B5%20%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%20%D1%81%20schwabrak-%D0%BE%D0%BC%20%2842b3d1b739b5f0cef40f349cdc7044a785dc604a%29 ------------------------------------------------------------------------ Сгенерирован: SGBlog 0.34.0