Мы используем 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
#IDEX/USDT analysis :
#IDEX is currently in a downtrend and trading below the 200 exponential moving average (EMA). The price is encountering resistance from the 200 EMA and the resistance zone. It is anticipated to decline from there and test a lower low.
TF : 2h
Entry : $0.02875
Target : $0.02650
SL : $0.03024
#IDEX/USDT analysis :
#IDEX has recently broken out above the resistance zone and the 200 EMA. The price is likely to continue its bullish momentum and test higher levels.
TF : 15min
Entry : $0.03760
Target : $0.03894
SL : $0.03672
📊#IDEX pumped with a good volume from the horizontal support. Currently, it is facing the descending trendline, MA 100 and the Ichimoku cloud resistance. We've to keep an eye on a solid breakout of the Ichimoku cloud, which would confirm the upward direction.👀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
📊#IDEX is forming a descending triangle and price is heading toward a decision area. The support is $0.0469-$0.0485 area and a break below this support area will bring a heavy sell-off. The resistance is $0.052-$0.0522 area and we will only open a long position after a break above the resistance area.🚀
❄️@signals_bitcoin_crypto❄️
❄️@Shadow_support0o❄️
Эксклюзивно про Т-90МС: с выставочного подиума – в бой
Новейший Т-90МС, который в феврале этого года был звездой международной выставки#IDEX в Абу-Даби, уже выполняет боевые задачи в составе российских танковых подразделений.
Машина, которую мы впервые показали за рубежом, была доработана с учётом богатейшего опыта СВО. И в наши войска была отправлена практически в той же комплектации, что и демонстрировалась на выставке в ОАЭ. Изменение коснулось цвета: с «выставочного» песочного камуфляжа танк перекрасили в стандартный армейский зеленый.
Ко Дню танкиста публикуем эксклюзивное видео всего этого пути!
В этом ролике – вся история: от транспортировки танка на выставку, его работы на стенде Рособоронэкспорта и до возвращения домой, перекраски и отправки героям-танкистам.
#КонцернУВЗ#Т90