Мы используем 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
OnePlus 8T+ OxygenOS 11.0.13.15.KB09CB
System
• Android security patch upgraded to October 2021
• General improvements
SHA-1
Full:
d514c5aaa2be67c6d4f4aab945ab3d66b4cf2ea0
Size
Full:
2.82 GB (3025746613)
Downloads
Google OTA Server:
Full
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#kebabt#NorthAmerica#TMobile#Full#Stable#KB2007
OnePlus 7T Pro 5G OxygenOS 11.0.1.5.HD61CB
System
• Android security patch upgraded to October 2021
• General improvements
MD5
Full:
87dc0b638a0cb36544373f07e4ab501a
Size
Full:
2.59 GB (2784419502)
Downloads
Google OTA Server:
Full
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#hotdogg#NorthAmerica#TMobile#Full#Stable#HD1925
OnePlus 7T OxygenOS 11.0.1.5.HD63CB
System
• Android security patch upgraded to October 2021
SHA-1
Full:
597e476a4998cb26b6a61b6d57a9677ebc1eeffe
Size
Full:
2.57 GB (2763746128)
Downloads
Google OTA Server:
Full
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#hotdogt#NorthAmerica#TMobile#Full#Stable#HD1907
OnePlus 7 Pro OxygenOS 11.0.1.8.GM31CB
System
• Android security patch upgraded to April 2022
SHA-1
Full:
7c7b81044ef10899fa42667215149d3fc8f58bb3
Size
Full:
2.12 GB (2277668727)
Downloads
Google OTA Server:
Full
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#guacamolet#NorthAmerica#TMobile#Full#Stable#GM1917
OnePlus 7T Pro 5G OxygenOS 11.0.1.9.HD61CB
System
• Android security patch upgraded to June 2022
SHA-1
Increment (11.0.1.5.HD61CB):
d84c09bd6a25b8d964c6c46df015fcf0cde1bafd
Size
Increment (11.0.1.5.HD61CB):
125.35 MB (131440277)
Downloads
Google OTA Server:
Increment (11.0.1.5.HD61CB)
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#hotdogg#NorthAmerica#TMobile#Increment#Stable#HD1925
OnePlus 8T+ OxygenOS 11.0.17.19.KB09CB
System
• Android security patch upgraded to May 1, 2022
SHA-1
Increment (11.0.13.15.KB09CB):
d75ddacc7be3e11589e929ccdecd56a823da1900
Size
Increment (11.0.13.15.KB09CB):
140.75 MB (147588733)
Downloads
Google OTA Server:
Increment (11.0.13.15.KB09CB)
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#kebabt#NorthAmerica#TMobile#Increment#Stable#KB2007
OnePlus 7T OxygenOS 11.0.1.9.HD63CB
System
• Android security patch upgraded to June 2022
SHA-1
Increment (11.0.1.5.HD63CB):
546c62a4127c22911102aa01a72f3c72f11502df
Size
Increment (11.0.1.5.HD63CB):
95.99 MB (100657408)
Downloads
Google OTA Server:
Increment (11.0.1.5.HD63CB)
Exported by MlgmXyysd Color OTA Bot@OnePlusOTA
#Oxygen#hotdogt#NorthAmerica#TMobile#Increment#Stable#HD1907