Мы используем 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
India's mobile manufacturing sector has come a long way!
Thanks to government initiatives like PLI, Make in India, and Digital India, India's tech sector is leading the way towards self-reliance. India is no longer dependent on mobile imports.
#MeriSarkar
#JanDhanYojana केवल बैंक खाते खोलने के बारे में नहीं है; बल्कि यह नई संभावनाओं का द्वार है और इसने करोड़ों महिला लाभार्थियों के जीवन को आसान बनाया है।
#MeriSarkar
Proud moment for India's mobile manufacturing industry!
The world is increasingly choosing Made in India mobiles, a testament to the country's quality and innovation in the tech sector.
#MeriSarkar
#PaiPaiSeDeshKiBhalai
Global giants have expanded their operations, showing immense confidence in India’s growth story. It has boosted job opportunities and paved the way for India’s digital transformation.
#MeriSarkar
#PaiPaiSeDeshKiBhalai
The world is recognising the success of Jan Dhan Yojana. India has become a global leader paving the way for financial inclusion at a massive scale and speed.
#MeriSarkar
#JanDhanYojana
In the most unprecedented circumstances like the Covid-19 pandemic, Rs 31,000 crore were directly transferred into the bank accounts of Jan Dhan Yojana women beneficiaries.
#MeriSarkar
#JanDhanYojana
Jan Dhan Yojana is not just about opening bank accounts; it is a door to new possibilities and has ensured ease of living for crores of women beneficiaries.
#MeriSarkar
#JanDhanYojana
India's mobile manufacturing sector is becoming #Aatmanirbhar!
PLI is driving growth in the mobile manufacturing sector, making India a leader in mobile production and creating new opportunities for domestic players.
#MeriSarkar