Мы используем 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
🚨 Only 1 day left until the Top Club Referral event ends! ⏳
Don't miss your chance to invite more members to your club and win amazing rewards from SingSing.
Act fast and make your club the best 👉link🌟
🥇Top 1: 10,000 RUBY shared among all Club Members + 0.01 ETH for Club Owner
🥈Top 2-4: 5,000 RUBY shared among all Club Members + 0.007 ETH for Club Owner
🥉Top 5-7: 3,000 RUBY shared among all Club Members + 0.003 ETH or Club Owner
🏅Top 8-10: 2,000 RUBY shared among all Club Members
Total prize pool: 20,000 RUBY and 0.02 ETH! 💎✨
Note: Top clubs will be determined by the number of members joining through each club's referral link.
Read more and open Treasure at: X Post
#SingSing#TopClubReferral#LastChance
🚀 Great Start of SLEX Launchpad!🎉
⚡️The first day of SLEX Launchpad sales was a huge success with over 37,78% of allocations sold out! Whitelist participants, you have a last chance to be part of this exclusive event, but hurry up as allocation actively decreases with high users demand📈
🗓️The sale ends tomorrow, February 17th. Don't miss the last chance to take exclusive advantages of SLEX Launchpad.
#SLEXLaunchpad#LastChance#CryptoSale
Website| Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
📣 Final Call for SLEX Rewards! 🌟
🎁Dear, SLEXians, our rewards form is closing soon! Don’t miss your last chance to claim tokens SLEX. Fill out the Zealy contest form by the 24th of November 2023🎉
🏃♂️💨 Hurry, time is ticking, and this is your final reminder. Complete the process to ensure you don’t miss out!
👉bit.ly/3s3Ey46👈
#SLEXRewards#LastChance#CryptoCommunity#SLEXPrizes
Email | Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter
🚨 RUBY Mining Feature Closing at 13:00 UTC on Sep 23! 🚨
Today’s your last chance to mine and claim RUBY! ⏳⛏💎
RUBY is still essential for several game features and boosting your in-game earnings, so don’t miss out! 🎮💰
Get those final rewards before the feature shuts down!
#SingSing#RUBYMining#LastChance#GameBoost#SingSingTycoon
🎤Announcement | Chat | X (Twitter) | Website | Game