Бомберман отсюда.
Введение ¶
1
2
3
4
5
6
7
  | #  ┬ ┬┬─┐┬  ┬  ┌─┐    #  ┳━┓┳━┓┏┓┓┳━┓┳━┓┳━┓┓━┓┳━┓┓━┓
#  │─┤├─ │  │  │ │    #  ┃ ┃┃━┫ ┃ ┃━┫┃━┃┃━┫┗━┓┣━ ┗━┓
#  ┘ ┴┴─┘┘─┘┘─┘┘─┘    #  ┇━┛┛ ┇ ┇ ┛ ┇┇━┛┛ ┇━━┛┻━┛━━┛
#  ┳━┓┓ ┳┓━┓  ┳━┓┏━┓┏━┓     #  ┌┐┐┬─┐┌┐┐┐ ┬┌─┐┬─┐┬┌ 
#  ┃━┫┃┃┃┗━┓  ┣━ ┃  ┏━┛     #  │││├─  │ ││││ ││┬┘├┴┐
#  ┛ ┇┗┻┇━━┛  ┻━┛┗━┛┗━━     #  ┘└┘┴─┘ ┘ └┴┘┘─┘┘└┘┘ ┘
  | 
Вот такого рода надписи я вставляю в исходные коды чтобы визуально разделить на куски. В Terraform, к примеру.
Установка ¶
Устанавливаем figlet как угодно для своего дистрибутива.
Качаем дополнительные шрифты.
1
2
  | curl -Lo- 'https://github.com/vlasov-y/figlet-fonts/archive/refs/tags/v1.1.tar.gz' | \
sudo tar -C "$(figlet -I2)" --strip-components 1 -xpzvf -
  | 
Просмотр всех шрифтов ¶
1
2
3
4
  | find "$(figlet -I2)" -type f -name '*.*f' | while read -r i; do 
  echo "> $i"
  figlet -f "$i" "$(basename "$i")"
done | less
  | 
Функция для .bashrc ¶
Вот тут внимательно. В подавляющем большинстве шрифтов используются знаки, которые у ваших коллег, которые тот же код из Git стянут, либо вообще не отобразятся, либо будут показаны не правильно, прямоугольниками. Я методом проб и ошибок нашёл для себя универсальный и красивый шрифт - Rusto. Есть ещё RustoFat, и он мне даже больше нравиться, но он уже проблемный 😢
1
2
3
4
5
6
7
  | #  ┬─┐┬ ┐┐─┐┌┐┐┌─┐
#  │┬┘│ │└─┐ │ │ │
#  ┘└┘┘─┘──┘ ┘ ┘─┘
#  ┳━┓┳ ┓┓━┓┏┓┓┏━┓┳━┓┳━┓┏┓┓
#  ┃┳┛┃ ┃┗━┓ ┃ ┃ ┃┣━ ┃━┫ ┃ 
#  ┇┗┛┇━┛━━┛ ┇ ┛━┛┇  ┛ ┇ ┇ 
  | 
Надписи выше, я получил уже используя свою функцию, по этому у Вас Rusto будет немного отличаться. Добавьте эту функцию к себе в .bashrc или .zshrc и можно будет пользоваться. Кроме того, нужно будет поставить xsel.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  | rusto () {
  figlet -f rusto "$*" | sed "s@^@${P:-#  }@g; s@┆@┘@g" | tee /tmp/tt | xsel -i -b
  cat /tmp/tt
  rm -f /tmp/tt
}
rustofat () {
  figlet -f rustofat "$*" | sed "s@^@${P:-#  }@g" | tee /tmp/tt | xsel -i -b
  cat /tmp/tt
  rm -f /tmp/tt
}
  | 
Что тут творится? Выполняя команду в консоли rusto или rustofat текст, который будет передан как аргументы к командам, будет преобразован, написан на экране и сразу скопирован в буфер обмена. И да, ещё символ ┆ заменяется на ┘, чтобы Rusto был полностью безпроблемным. Также, дописывается # к началу каждой строки, чтобы можно было сразу в исходники вставлять. Решётку можно заменить указав переменную P.
1
2
3
4
5
6
7
8
9
  | ❯ rusto hello world
#  ┬ ┬┬─┐┬  ┬  ┌─┐  ┐ ┬┌─┐┬─┐┬  ┬─┐
#  │─┤├─ │  │  │ │  ││││ ││┬┘│  │ │
#  ┘ ┴┴─┘┘─┘┘─┘┘─┘  └┴┘┘─┘┘└┘┘─┘┘─┘
❯ P='//  ' rustofat changed comment char
//  ┏━┓┳ ┳┳━┓┏┓┓┏━┓┳━┓┳━┓  ┏━┓┏━┓┏┏┓┏┏┓┳━┓┏┓┓┏┓┓  ┏━┓┳ ┳┳━┓┳━┓
//  ┃  ┃━┫┃━┫┃┃┃┃ ┳┣━ ┃ ┃  ┃  ┃ ┃┃┃┃┃┃┃┣━ ┃┃┃ ┃   ┃  ┃━┫┃━┫┃┳┛
//  ┗━┛┇ ┻┛ ┇┇┗┛┇━┛┻━┛┇━┛  ┗━┛┛━┛┛ ┇┛ ┇┻━┛┇┗┛ ┇   ┗━┛┇ ┻┛ ┇┇┗┛
  | 
Бонус ¶
Форму для дневные отчётов я генерю так.
1
2
3
4
  | LC_ALL=C.POSIX date '+%d %B' | \
figlet | \
xargs -0 printf '```\n%s```\nNo blocks\nNo questions\nDone\\Doing:\n' | \
xsel -ib
  | 
Получается вот такое.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
  | ```
  ___   __         _                                    
 / _ \ / /_       | | __ _ _ __  _   _  __ _ _ __ _   _ 
| | | | '_ \   _  | |/ _` | '_ \| | | |/ _` | '__| | | |
| |_| | (_) | | |_| | (_| | | | | |_| | (_| | |  | |_| |
 \___/ \___/   \___/ \__,_|_| |_|\__,_|\__,_|_|   \__, |
                                                  |___/ 
```
No blocks
No questions
Done\Doing:
- Drinking tee
- Sleeping
- Writing evening report
- Emulating work
  | 
Потом дописываю что я делал и сбрасываю в Slack.