Мы используем 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
🔴 MEETING EXCEPTIONNEL À LILLE !
Jean-Luc Mélenchon sera à #Lille ce jeudi au grand palais à 19h pour soutenir la liste insoumise, et surtout écologiste et populaire !
✊ Dimanche, nous pouvons l’emporter ! Soyons nombreux et nombreuses !
Ma publication à retrouver sur :
👉Twitter
👉Instagram
👉Facebook
👉Tik tok
➡️ Rejoignez le canal telegram : https://t.me/Lahouaria_Addouche
⚽️🇪🇺Champions
Lille 1-0 Real Madrid#Champions#Lille#RealMadrid
El Real Madrid cayó por primera vez en la temporada y segunda en el año. Desde el 18 de enero, en aquella noche copera del Metropolitano. Puede que el derbi dejase tocado al equipo de Ancelotti, que al menos en los últimos minutos pudo igualar un partido plano. Tres paradas de reflejos de Chevalier evitaron que el Madrid igualara en una reacción muy tardía. El Lille aprovechó los desajustes blancos y conquistó una victoria de enorme prestigio.
https://www.marca.com/futbol/champions-league/cronica/2024/10/02/66fda5bcca4741d9138b4572.html
🏆@Info288_deportes
⚽️🇪🇺Champions
Atlético 1-3 Lille#Champions#Atlético#Lille
El Atlético de Madrid ha perdido este miércoles por 1-3 frente al LOSC Lille en la jornada 3 de la fase de liga en la Champions League, a causa sobre todo de un polémico penalti encajado a cuarto de hora de la conclusión, en un partido disputado en el Riyadh Air Metropolitano y tras el cual los colchoneros se han complicado su futuro inmediato en este torneo.
https://www.europapress.es/deportes/futbol-00162/noticia-atletico-madrid-pierde-lille-complica-futuro-champions-league-20241023230223.html
🏆@Info288_deportes
Lille y Stade Brestois se clasificaron a la próxima edición de la UCL🇪🇺
El Lille llegaron hasta los octavos de final de la UCL en la temporada 21/22.
Mientras que el Brest jugará por primera la UCL en su historia tras una increíble temporada en la Ligue 1
@Fut_planet⚜️#UCL🇪🇺#Lille🇫🇷
#Brest🇫🇷
France Ligue 1🇫🇷
2026-05-03 13:00 UTC
Lille vs. Le Havre
Predicted outcome: Lille❌
Predicted score: 1:0
Actual: Draw 1:1
#Lille#LEHavre
2026-05-03 15:15 UTC
Strasbourg vs. Toulouse
Predicted outcome: Strasbourg❌
Predicted score: 2:1
Actual: Toulouse 1:2
#Strasbourg#Toulouse
2026-05-03 15:15 UTC
Auxerre vs. Angers
Predicted outcome: Auxerre✅
Predicted score: 2:1
Actual: Auxerre 3:1
#Auxerre#Angers
2026-05-03 15:15 UTC
Paris FC vs. Stade Brestois 29
Predicted outcome: Paris FC✅
Predicted score: 2:1
Actual: Paris FC 4:0
#ParisFC#StadeBrestois29
2026-05-03 18:45 UTC
Lyon vs. Rennes
Predicted outcome: Lyon✅
Predicted score: 3:2
Actual: Lyon 4:2
#Lyon#Rennes
#Football#FranceLigue1