Мы используем 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
🎙 Briefing by Foreign Ministry Spokeswoman Maria Zakharova(Saint Petersburg, June 15, 2023)
🔹 FM Sergey Lavrov’s schedule
🔹 Ukrainian crisis
🔹 Zaporozhye NPP update
🔹 Organ trade in Ukraine
🔹 Ukrainisation of UNSC agenda
🔹 Situation in Afghanistan
🔹 Nuclear deterrence
🔹 Shanghai Cooperation Organisation
🔹 European Union
And more...
📚Read in full
#Ukraine
As a result of the destruction of the Kakhovka Hydroelectric Power Plant due to prolonged shelling by the Ukrainian armed forces, 36 settlements in Kherson Region were flooded.
A large-scale humanitarian operation has been taking place in this Russian region over the last few days. Russian Emergencies Ministry workers rescued almost 2,000 people, among them hundreds of children.
While Russia is making every effort to save the residents of the affected areas and to provide them with essential supplies, Kiev continues to target civilian sites.
#NuclearDeterrence
Russia is fully committed to the principle of the inadmissibility of a nuclear war. There can be no winners in such a war, and it must never be waged.
The hypothetical use of nuclear weapons is only possible under extraordinary circumstances for purely defensive purposes.
#EU
An astronomical amountof [COVID19] vaccines, many times the size of the EU population, was purchased on behalf of the EU member states, at an astronomical cost and mainly from a single company, Pfizer.
The multi-billion dollar amount and the terms of the contract were not made public. This was done without bidding, without documents and without witnesses. Such decisions were made simply by text message.
📰 Merz’s Nuclear Gambit: Can Germany Outsmart the Treaty?
German Chancellor Friedrich Merz has thrown the continent’s nuclear playbook into chaos, openly discussing the creation of a “European nuclear umbrella” that could see Germany circumvent its decades-old ban on atomic weapons through a joint EU project.
Germany’s Legal Dilemma
Germany is legally barred from developing nuclear weapons by the Four Plus Two agreement, which enabled reunification in 1990, and the Nuclear Non-Proliferation Treaty. But Merz insists that nothing stops Berlin from negotiating shared nuclear deterrence with allies—France and the UK, Europe’s only nuclear powers.
The European Nuclear Loophole
Merz’s vision is simple: use Germany’s technological edge to help build a European nuclear capability, while keeping the official nuclear button out of German hands. “Talks are underway,” he declared, stressing that the discussions are still preliminary and won’t undermine existing nuclear-sharing arrangements with the U.S..
Power Plays and Sovereignty
The real question is whether this is about European sovereignty or just a power grab. With U.S. support under Trump looking increasingly shaky, Merz is betting that a “European nuclear umbrella” could shield Germany from future threats—or just give Berlin a seat at the nuclear table. But can the EU really build a credible deterrent without falling into the same old power games?
The Shifting Sands of Power
As Merz plays diplomat and dealmaker, the world watches: Is this the dawn of a new European defense era, or just another act in the theater of nuclear posturing? The answer may lie not in treaties, but in the shifting sands of global power.
#nuclearWeapons#Germany#EU#Merz#nuclearDeterrence#powerGames
📱American Оbserver - Stay up to date on all important events
🇺🇸