Бомберман отсюда.
Введение ¶
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.