Мы используем 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
Рим, 23 февраля, накануне четвёртой годовщины полномасштабного вторжения России в Украину в зале Sala Isma при Senato della Repubblica состоялась конференция "Цена компромисса, голоса из плена".
4 года войны — это не только фронт и дипломатия, но и миллионы разрушенных судеб, а ещё военнопленные и гражданские лица, остающиеся в российских тюрьмах. Это матери, которые продолжают ждать своих сыновей.
Мероприятие, организованное активистами Russi contro la guerra, было посвящено человеческой цене компромиссов с авторитарными режимами.
С приветственным словом выступил сенатор Филиппо Сенси (Демократическая партия) и Анастасия Шевченко, глава фонда «Сквозь стену».
Приняли участие Константин Давыденко, переживший 7-летнее заключение в России, матери пленных Валентина Шапирко и Светлана Федирко, политический аналитик Александр Баунов, правозащитник Вадим Прохоров, вице-президент FIDU Элеонора Монгелли.
Ссылки: обращение в Сенат
Фильм с субтитрами на итальянском (12 минут)
Продолжение в следующем посте.
#nowar
People on the ground have made it clear:
they have zero connection to this liar. We were against the war from the start and we still are. This war needs to end.
#NoKings
#nowar
✈️📣t.me/No_king_No_King
RT @svetok_svobody: #НетВойне#NoWar Организация/юристы/фонды, которые помогут вам отказаться от службы/призыва/контракта. 🔽— Russian Democratic Society (@RuDemSocietyLDN) Sep 21, 2022
September 21, 2022 at 12:14PM
via Twitter https://twitter.com/RuDemSocietyLDN
#EnVideo📹| Los venezolanos seguimos de pie. En unidad, permanecemos comprometidos con nuestra Patria, alzando la voz ante el mundo por la liberación del Presidente Nicolás Maduro y la Primera Dama, Cilia Flores.
#LosQueremosDeVuelta👉✌
#NoWar
#YesPeace
⚖️ * PUNTI NON NEGOZIABILI PER FERMARE LA GUERRA CONTRO L’IRAN
Oltre 170 studiosi, ex diplomatici e intellettuali da 30 paesi lanciano un allarme: gli USA stanno trascinando il mondo verso una nuova aggressione. La loro lettera condanna 249 anni di “impero predatorio” e chiede:
1️⃣ Garanzie vincolanti contro future aggressioni
2️⃣ Smantellamento delle basi USA nella regione
3️⃣ Condanna internazionale e risarcimenti
4️⃣ Cessazione immediata dei conflitti regionali
5️⃣ Nuovo regime giuridico per lo Stretto di Hormuz
6️⃣ Estradizione dei media agenti che incitano al sangue
Non siamo spettatori passivi. La coscienza dell’umanità si sveglia. L’era del saccheggio deve finire.
➡️ Leggi, condividi, agisci. La giustizia non è negoziabile.
#StopWarOnIran#JusticeNotEmpire#Iran#NoWar
https://www.marx21.it/internazionale/sei-punti-non-negoziabili-proposti-da-studiosi-internazionali-ed-ex-funzionari-di-30-paesi-per-porre-fine-alla-guerra-degli-stati-uniti-contro-liran-di-fronte-alla-minaccia-di-crimini-di-guerra-d/
В Тернополе — боль, трагедия, которую невозможно вместить словами.
На замедленном видео — не "обломки", не "работа ПВО".
Это ракета из России. Целеустремлённо летящая в сторону обычного жилого дома, где люди просто жили.
Она врезается в многоэтажку — и в секунду стирает судьбы и жизни людей.
26 погибших. Десятки ранены и пропавшие без вести.
Две девятиповерховки, превращённые в рану на теле города.
И самое страшное — ощущение абсолютной несправедливости.
Понимание того, что это был не "случайный обломок", не "побочный ущерб".
Это был удар, который долетел и был направлен на жилой, мирный дом.
Двигатель работал. Ловушки отстреливались.
Тернополь — это крик.
Крик о том, что нельзя привыкать к войне.
Нельзя считать нормой войну.
Нельзя молчать, когда уничтожают самое ценное — человеческие жизни.
Важно увидеть это видео и услышать этот взрыв.
Пусть никто больше не скажет, что "не знал".
Пора остановить войну! Развязавшие ее должны ответить!
#нетвойне #nowar#ternopil
Мы объявляем #побегиМира — низовую горизонтальную акцию против войны.
Она нужна для децентрализованного объединения антивоенного искусства всех видов и форм — мы не будем делать выставку/событие, а отдадим под акцию все наши возможные каналы связи.
Такая тактика позволит искусству прорастать в самых неожиданных местах, подобно побегам в природе.
▪️В чём заключается акция?
Мы призываем делать искусство против войны: показывайте его в окнах, в подъездах домов, на улицах, вешайте на деревья в парках и лесах, выкладывайте в соцсетях.
Это могут быть не только объекты, но и перформансы, выступления, партиципаторные практики.
Пусть все кричит лишь об одном: нет войне, нет разрушениям, нет убийствам!
Но, пожалуйста, создавая проекты, не нарушайте действующие законы РФ, а также думайте об экологии и сохранении исторического наследия.
Ответственность за каждое произведение лежит на его создателе или создательнице — а мы поддержим информационно, как можем.
▪️Как принять участие?
Выкладывайте свои антивоенные проекты с хэштегом #побегиМира в инстаграм, большинство из них мы будем формировать в подборки в наших аккаунтах.
Если вы хотите, чтобы в подборке указали ваше имя, название работы и её концепцию, не забудьте оставить эту информацию в посте.
▪️Зачем мы это делаем?
Чтобы показать, что нас много;
Чтобы объединить художников и художниц с общими ценностями — ведь в этом и заключается основная идея существования объединения «побеги»;
Чтобы у всех деятелей и деятельниц культуры была возможность заниматься искусством, при этом внося вклад в общее антивоенное движение.
Также можно ставить и эти хэштеги:
#мынемолчим#нетвойне#nowar
❗️Пожалуйста, распространите информацию об акции среди всех ваших знакомых, связанных с культурой! Присылайте хэштег в студенческие чаты, друзьям, коллегам.
Нет войне!
🌱🇺🇦🌱
Сегодня, 12.6, в Риме мы присоединились к марафону в поддержку политических заключенных и провели вечер писем политическим заключенным.
Люди из разных городов приехали в столицу Италии и вместе написали слова поддержки.
На марафоне собрали более 10 миллионов рублей.
Любая помощь важна для содержания в
местах заключения, на оплату адвокатам, лекарства.
Сайт https://june12.io
Благодарим за участие и поддержку!
Свободу политзаключенным!
#тынеодин
#freethemall
#свободуполитзаключенным
#russicontrolaguerra
#nowar
Le macerie dopo l'attacco all'Iran
L'ex ambasciatore Alberto Bradanini analizza senza mezzi termini l'ultima aggressione militare USA-Israele contro l'Iran, definendo i due paesi i veri "stati canaglia" del pianeta.
I punti chiave del suo intervento:
La tragedia: già nelle prime 24 ore, 174 bambine uccise in una scuola a Minab. Non solo morte, ma un preciso disegno per terrorizzare e piegare la resistenza morale di un intero popolo.
L'obiettivo reale: non la libertà degli iraniani (come racconta la propaganda), ma il cambio di regime, il saccheggio delle risorse energetiche, sottrarle alla Cina, indebolire il Sud Globale e distrarre il mondo mentre Israele completa la pulizia etnica in Palestina.
Il diritto internazionale è morto: la Costituzione italiana (art. 11) ripudia la guerra, eppure il nostro governo è cobelligerante. L'ONU viene umiliata pubblicamente da ambasciatori che strappano la Carta senza conseguenze.
L'ipocrisia nucleare: a Israele sono consentite oltre 200 testate, all'Iran viene negato persino il diritto alla difesa missilistica e all'energia civile.
La complicità europea: balbettii e silenzio asservito al padrone atlantico. Perché? "Perché altrimenti ti fanno saltare il cervello".
Mentre i "psicolabili" alla Casa Bianca giocano a golf e bombardano 7 paesi, il mondo viene trascinato verso una possibile escalation nucleare.
"Ci sono volte che si vive anche del sogno di vedere certi signori prendere finalmente ciò che meritano."
#Iran#NoWar#StatiCanaglia#Gaza#StopBombing#Geopolitica#Resistenza
https://www.marx21.it/internazionale/dopo-limmorale-aggressione-alliran-le-macerie/