Мы используем Makefile думая, что нет альтернатив, что это стандарт и всё такое.
Но make это не запускалка команд, а система сборки. Мы фактически используем его не по назначению.
И на самом деле альтернатива есть! Некоторое время назад я открыл для себя прекрасный инструмент - just. Он решает все проблемы make.
just - это не система сборки как make, это именно исполнитель команд!
Больше никаких Phony Targets и табуляций, привет нормальный синтаксис и передача аргументов!!! 😎
⭐️Что умеет just:
✅ Автодокументирование команд
Не нужно делать отдельную команду с докой, просто добавь комментарий
# команда сборки
build:
...
$ just --list
Available recipes:
build # команда сборки
Команда с именем default запускается по умолчанию если не указано другое, так что я обычно делаю так:
default:
just --list
Теперь просто выполняем just и получаем доку из текущего файла.
✅ Удобная работа с переменными окружения
# загрузить из .env
set dotenv-load
# глобальная переменная
export PYTHONPATH := "./src"
# переменная для команды
test $TESTUNG="true":
pytest
✅ Передача аргументов
build target:
@echo 'Build {{target}}...'
команда запуска
$ just build dev
# Build dev...
✅ Выбор интерпретатора прямо в команде
Пример с инлайн-скриптом на python:
system:
#!/usr/bin/env python3
import platform
print(platform.system())
Эта же функция позволит выполнить скрипт как одну команду вместо перезапуска шела для каждой строки
foo:
#!/usr/bin/env sh
for file in ls .; do
echo $file
done
✅ Выполнение команды в определенной директории. Можно указать как релятивный путь так и абсолютный
[working-directory: 'backend']
build:
docker compose build
Также можно задать рабочую директорию глобально
Там еще много интересного:
- поддержка функций
- автокомплиты и интеграции
- экспрешены
- алиасы команд
- группировка команд
- альтернативы команды под разные ОС
- импорт других just-файлов
- цветной вывод
- ... и другие штуковины!
Так что вперёд - ➡️ читать доку!
Репозиторий: ➡️https://github.com/casey/just
Статья: ➡️https://www.chicks.net/reference/file_formats/just/
ЗЫ. Кажется, на Makefile я уже не вернусь)
#tools
Other than firefighters and medics, the first people that went to help are local citizens everywhere from the city bringing food and their own supplies. However, to the #HKGov took all the credits. They called the cops to drive those volunteers away and the “Care Team” from the government takes pictures in front of those supplies that belongs to the volunteers. This is awfully disgusting.
#HongKongFire#宏福苑大火
Bamboo becomes the Scapegoat this time!
Everyone #HongKongers expected the #HKGov would find a scapegoat way before the fire was put out. What surprising was that this time it wasn’t a person, but the bamboo.
The “Mandatory Inspection Scheme” in Hong Kong, initiated by the government is the very reason that caused this tragedy.
To put it short:
1 - Government requires home owners to remake the buildings wall.
2 - Pro-Beijing & construction agencies infiltrated Home Owners Corporation.
3 - Hire construction companies with extremely high price.
4 - all materials and workers not meeting safety standards are purchased from China.
5 - $$ goes to China.
#HongKongFire#宏福苑大火
#英文#港聞
Several #HongKongers returned to Hong Kong from UK got arrested for getting their MPF (Mandatory Provident Fund).
This is just an excuse for the #HKGov to punish #HongKongers for immigrating to the UK. The #UKGov must take action!
🍎保留一點真相、一些堅持:
https://t.me/appledailyhk26
🍎蘋果報料熱線: @Appledailyhk_bot
🍎蘋民不蘋則鳴!2.0
https://t.me/hkerappledaily2