Мы используем 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
⚡️
🇷🇺
🇺🇦⚔️ Ukraine Fronts on the Morning of 2 April⚡️
🔴#Sumy Direction:
🔴In #Sudzha Sector, to the west on Ukrainian lands, there were no reports on major changes. Thus, the situation is likely as follows:
🟡#Vladimirovka- AFU; {1st blue↗️};
🟡#Vodolagi - AFU;
🟡 Russian #Uspenovka - contested {1st black↘️};
🟡#Veselovka - contested;
🟡#Belovody - AFU;
🟡#Zhuravka, contested;
🟡#Basovka, contested.
🟡#Novenkoye - RFAF {1st red⬆️}.
🟡 In #Kursk region, fighting continues north of the AFU controlled #Oleshnya, east of which Russian troops have (confirmed) advanced on the village. For #Guyevo the battle continues, the respective control zone of both parties is disputed. #Gornal is AFU controlled.
🔴In #KrasnayaYaruga Sector, fighting for #Popovka {6th black↙️} and #Demidovka is ongoing.
🗺 All on Map 1
🔴 In #Kharkov Direction, Russian aviation and artillery are reportedly striking the AFU's logistics routes.
🔴#Svatovo Front:
🔴 In #Kupyansk Sector, Russian units advanced west of the Oskol River towards #Kondrashovka, the battle for which has begun. Thus, the Russian claims regarding the village and #MalayaShapkovka to it's northwest, reported on 29 Mar have proven wrong. It has just been reported that Russian units have entered #Kondrashovka's north.
🗺 Map 2
🔴 In #Borovaya Sector, no major changes.
🔴In #Liman Sector, the battle at #Katerinovka and #Novoye continues.
🔴In #Seversk Sector, the most intense clashes are at #Belogorovka's chalk quarry.
🔴#ChasovYar Direction:
🔴In #ChasovYar Sector, positional battles without major changes.
🔴In #Toretsk Sector, fighting in the city for the 'Toretskaya Mine' in the north, in the western outskirts and in the southern 'Zabalka Microdistrict' continued, as well as to the west for the villages of #Shcherbinovka and #Leonidovka.
🔴#Pokrovsk Direction:
🔴 On the right Flank, far to the east, the RFAF are still assaulting the southern village edge of #Valentinovka. Fighting continues around the recently taken #Panteleymonovka and for #Tarasovka further west.
🔴 South of the City, ongoing fighting along the frontline, without changes.
🔴 On the left Flank, the situation is dynamic. Reportedly, fierce fighting continues for #Udachnoye and in the #Uspenovka - #Novoaleksandrovka area. The AFU are trying to take #Uspenovka to slow down the Russian advance in #Novoaleksandrovka, the capture of which would enable further advance to #Novosergeyevka.
🟡 South of #Kotlyarovka, there was reportedly a breakthrough, Russian units cut of #Preobrazhenka from #Troitskoye and blocked the approaches to it from #Kotlyarovka. Currently, #Preobrazhenka is being cleared.
The battles for #Kotlyarovka and #Bogdanovka continue.
🗺 Map 3
🔴#Komar Direction:
🔴 In #Bogatyr Sector, fighting around #Andreyevka and for #Konstantinopol continues.
🟡 For #Razliv, the RF MoD also claimed the takeover, but failed to provide evidence. The published video did not include the large buildings with blue roofs we mentioned yesterday.
🎬 Video
🔴 In #Komar Sector, at #Vesyoloye, Russian stormtroopers reportedly penetrated the AFU defences. In #VolnoyePole, fierce fighting for control over the settlement continues.
🔴#Zaporozhye Direction:
🔴In the #Orekhov Section, the battles for the 4 contested villages continue.
💥 In the #DPR, an AFU UAV hit City Bus No. 2 in #Gorlovka yesterday morning, wounding 15 civilians.
💥 In #Kherson Direction, the RFAF aviation carried out a massive bombing of the right Dnieper bank.
💥#Russia:
🔵The AFU attacked with UAVs at night. In #Kursk, at least 15 explosions were reported. In #RostovRegion, two apartment buildings in #Taganrog were damaged.
💥#RestUkraine:
🔵 The RFAF struck #Kharkov, #Kramatorsk and #Odessa with UAVs.
⚠️ The Term 'Reportedly' indicates that it is unconfirmed!
🎞 Videos Source
🗺 Maps @olegtsarov; @petrenko_iHS
📋 Sources: CC; Tsarov;
🇺🇦Fiend;⚡️2M;🐈Cat😼VK
🕰As of 2 Apr 2025; 06:53 GMT+3;📃1 Apr
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Join Military Chat for Comments & Discussions
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update
⚡️
🇷🇺
🇺🇦⚔️ Ukraine Fronts on the Morning of 1 April⚡️
🔴 In #Chernigov Direction, the AFU has reportedly already crossed the Russian border of the #Bryansk region many times. Locals point to periodic incursions towards several villages.
🔴#Sumy Direction:
🔴In #Sudzha Sector, to the west on Ukrainian soil, the situation based on confirmed information and evidence is as follows:
🟡#Vladimirovka- AFU; {1st blue↗️};
🟡#Vodolagi - AFU;
🟡#Uspenovka in Russia - contested {1st black↘️};
🟡#Veselovka - contested {2nd black↖️};
🟡#Belovody - AFU;
🟡 In #Zhuravka, fights in the central part;
🟡 In #Basovka, the RFAF assaults the eastern part.
🟡#Novenkoye - RFAF {1st red⬆️}.
🟡 In #Kursk region, reportedly, Russian troops have repelled an assault on the 'Border Checkpoint' {2nd red↙️}; the AFU have reinforced the battle area around #Oleshnya {4th blue⬅️}.
🟡 In #Guyevo, the RFAF have reportedly extended their control zone {5th black⬇️}.
🟡#Gornal remains AFU controlled.
🔴In #KrasnayaYaruga Sector, reportedly positional battles are taking place in #Popovka {6th black↙️}.
🟡 In #Demidovka, the AFU have advanced in the central part and in the area of the farm in the village's eastern part.
🗺 Map 2
🟡 At #Grafovka and #Prilesye, lull.
🗺 All on Map 1
🔴#Kharkov Direction:
🔴In #Liptsy Section, positional battles.
🔴 In #Volchansk Section, as well in the city itself.
🔴#Svatovo Front:
🔴 In #Kupyansk and #Borovaya Sectors, reportedly slight tactical successes for the RFAF without major changes.
🔴In #Liman Sector, fighting south of #Katerinovka and east of #Novoye in the north.
🔴In #Seversk Sector, west of #Belogorovka, Russian troops reportedly approached #Grigorovka.
🔴#ChasovYar Direction:
🔴In #ChasovYar Sector, the battles continues.
🔴In #Toretsk Sector, fighting in the city and to the west for #Shcherbinovka and #Leonidovka continued.
🔴#Pokrovsk Direction:
🔴 On the right Flank, far to the east, fighting continues at #Valentinovka and in the area of #Panteleymonovka (towards #Toretsk northwards). To the west, urban battles in #Tarasovka.
🔴 South of the City, reportedly Russian advance in #Lysovka. Battles at #Shevchenko and #Peschanoye, and in #Kotlino fighting at the the far southeastern edge.
🔴 On the left Flank, the fighting for #Udachnoye's far southeastern reportedly continued. Otherwise, intense combat is taking place along the entire frontline from #Solenoye southwards.
🔴#Komar Direction:
🔴In #Bogatyr Sector, the battles near #Andreyevka and for #Konstantinopol continue.
🟡 In #Razliv, Russian troops extended the zone of control and raised the flag in the centre of the village.
📌Despite several Russian claims, there is no takeover yet! The village boundaries extend to the west, especially the large buildings with blue roofs are located within them.
🎬 Video
🗺 Map 3
🔴 In #Komar Sector, the RFAF are reportedly attacking towards #Otradnoye and #Komar.
🟡 In #Vesyoloye, the battle for the settlement is ongoing.
🔴#Zaporozhye Direction:
🔴In the #Orekhov Section, south of the city, the AFU positions are reportedly under permanent fire; Russian units are attacking towards #Novoandreyevka. To the west, the fighting especially in the 4 contested villages continues:
🟡#Shcherbaki;
🟡#MalyeShcherbakito the west;
🟡#Stepovoye, further west;
🟡#Lobkovoye;
🟡#Pyatikhatki remains RFAF controlled.
🟡 At #Kamenskoye, in the far west, the RFAF reportedly took one of the AFU's key strongholds.
🔴 In #Kherson Direction, Russian aviation struck Ukrainian positions on the opposite bank, while the AFU targeted villages.
💥 For #OldRussia and #RestUkraine, we have found no reports of new mutual strikes.
⚠️ The Term 'Reportedly' indicates that it is unconfirmed!
🎞 Video Source
🗺 Maps @olegtsarov; @petrenko_iHS@creamy_caprice
📋 Sources: CC; Tsarov;
🇺🇦Fiend;⚡️2M;🐈Cat😼VK
🕰As of 1 Apr 2025; 06:38 GMT+3;📃31 Mar
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Join Military Chat for Comments & Discussions
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update
⚡️
🇷🇺
🇺🇦⚔️ Ukraine Fronts on the Morning of 31 March⚡️
🔴#Sumy Direction:
🔴In #Sudzha Sector, to the west on Ukrainian lands, the AFU counterattacked. Furthermore, video evidence has 👉emerged. As a result, the corrected situation (our added large arrows on map have been always correct) based on confirmed information and evidence is as follows:
🟡#Vladimirovka- AFU; {1st blue⬆️};
🟡#Vodolagi - AFU {2nd blue⬆️};
🟡#Uspenovka in Russia - contested {1st black⬆️};
🟡#Veselovka - contested {2nd black⬆️};
🟡#Belovody - AFU;
🟡#Zhuravka - contested;
🟡#Basovka - contested.
🟡#Novenkoye, RFAF {1st red⬆️}.
🟡 In #Kursk region, #Gogolevka and the 'Border Checkpoint' are RFAF controlled, an entry in #Oleshnya {4th blue⬅️} remained unconfirmed, fighting towards the village.
🟡 For #Guyevo, the battle continues.
🟡#Gornal is AFU controlled.
🔴In #KrasnayaYaruga Sector, the AFU in #Popovka and surrounding are under constant fire {6th black↙️}.
🟡 In #Demidovka, the battle on the ground continues.
🟡 At #Grafovka and #Prilesye, lull.
🗺 All on Map 1
🔴#Kharkov Direction:
🔴In #Liptsy Section and in #Volchansk, positional battles.
🔴#Svatovo Front:
🔴 In #Kupyansk Sector, Russian troops are expanding the bridgehead north of the city.
🔴In #Liman Sector, the battle for #Katerinovka has begun.
🔴In #Seversk Sector, fighting at #Belogorovka and towards #Verkhnekamenskoye. An entry into the latter remained unconfirmed.
🔴#ChasovYar Direction:
🔴In #ChasovYar Sector, without major changes.
🔴In #Toretsk Sector, the battle for the city continues. To the west, the AFU have further advanced in #Shcherbinovka and entered #Leonidovka.
🗺 Map 2
🔴#Pokrovsk Direction:
🔴 On the right Flank, far to the east, fighting continues in the area of #Panteleymonovka and #Aleksandropol, the full control of which is disputed. Northwest of the former, the RFAF advanced to the southern edge of #Valentinovka. To the west, the battle for #Tarasovka is ongoing.
🔴 South of the City, fighting for #Lysovka. #Shevchenko and #Peschanoye are RFAF controlled for now. East of #Kotlino the AFU advanced; in the village itself the RFAF at best hold the far southeastern edge (see 28 Mar).
🗺 Map 3
🔴 On the left Flank, Russian troops have at best presence in #Udachnoye's far southeastern part. The AFU have breached into #Solenoye. In #Uspenovka the RFAF reentered (earlier reports on clearing have not been confirmed) and attack towards #Novoaleksandrovka (reports on fights inside have not been confirmed).
🗺 Map 3
🟡#Nadezhdinka (#Nadeyevka) has been reentered by Russian forces (in the meantime, they have somehow lost control of the village).
🟡 Towards#Kotlyarovka and #Preobrazhenka, Russian assaults continue.
🔴#Komar Direction:
🔴In #Bogatyr Sector, the battle for #Konstantinopol continues. This contrary to 'Two Majors,' who have emphasised 'liberated' more than once (they know about the real facts). In #Razliv, the RFAF have consolidated their positions in the eastern, central and western parts of the settlement.
🔴 In #Komar Sector, the battle for #Novosyolka has shifted to the village's centre.
🔴#Zaporozhye Direction:
🔴In #Orekhov Section, the fighting continues. 4 villages remain contested:
🟡#Shcherbaki;
🟡#MalyeShcherbakito the west;
🟡#Stepovoye, further west;
🟡#Lobkovoye;
🟡#Pyatikhatki is RFAF controlled.
🗺 Map 4
🔴 In #Kherson Direction, the AFU shell villages.
💥#OldRussia:
🔵 AFU UAVs attacked #Bryansk, #Belgorod and Kursk regions, as well as #Crimea.
💥#RestUkraine:
🔵 The RFAFstruck with Iskanders in the #Sumy region, and 'Geraniums' worked in #Kiev, they reported a massive strike by UAVs on targets in the Zhitomir region.
⚠️ The Term 'Reportedly' indicates that it is unconfirmed, today without!
🗺 Maps @olegtsarov; @z_arhiv
📋 Sources: CC; Tsarov;
🇺🇦Fiend;⚡️2M;🐈Cat😼VK
🕰As of 31 Mar 2025; 07:26 GMT+3;📃29 Mar
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Join Military Chat for Comments & Discussions
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update
⚡️
🇷🇺
🇺🇦⚔️ Ukraine Fronts on the Morning of 29 March⚡️
🔴#Sumy Direction:
🔴 At #Bryansk Border, mutual strikes.
🔴In #Sudzha Sector, to the west on Ukrainian soil, reportedly the RFAF is about to expand the zone of control on a broad front from #Vladimirovka up to #Basovka:
🟡#Vladimirovka- contested;
🟡#Vodolagi - AFU {2nd blue⬆️};
🟡#Veselovka - taken by the RFAF {1st black⬆️};
🟡#Belovody - AFU {3rd blue⬆️};
🟡#Zhuravka - contested;
🟡#Basovka - contested.
🟡#Novenkoye, RFAF {1st red⬆️}.
🟡 In #Kursk region, reportedly, Russian forces advanced from the 'Border Checkpoint' {3rd red arrow} further south and have entered #Oleshnya 4th blue⬅️}.
🟡#Gogolevka, is reportedly RFAF controlled {2nd red⬇️}.
🟡 In #Guyevo, Russians filmed their presence in the village's north and fights further south {4th black⬅️}.
🎬 Video 1
🟡#Gornal remains under AFU control.
🔴In #KrasnayaYaruga Sector, militants enter #Popovka regularly up to its eastern part under RFAF fire {5th black↙️}.
🗺 Map 2
🟡 In #Demidovka, the AFU controls ca. 50% of the village.
🟡 At #Grafovka, lull.
🟡 At #Prilesye as well.
🗺 All on Map 1
🔴 In #Kharkov Direction, without changes.
🔴#Svatovo Front:
🔴 In #Kupyansk Sector, far north, Russian troops advanced in #Krasnoye1st. RF MoD claims its takeover. Further south, reportedly:
🟡#MalayaShapkovka has been entered;
🟡#Kondrashovka was taken and
🟡#Tischenkovka has been entered.
🔴 In #Borovaya, #Liman and #Seversk Sectors, and...
🔴#ChasovYar Direction, no major changes.
🔴#Pokrovsk Direction:
🔴 On the right Flank, far to the east, battles continue in the #Panteleymonovka area. To the west, for #Tarasovka.
🔴 South of the City, most of #Lysovka is RFAF controlled.
🔴 On the left Flank, the fighting (afore called clearing) continues in #Uspenovka.
🟡 In #Novoaleksandrovka, the battle for the village reportedly goes on.
🟡#Kotlyarovka has been approached by Russian troops. The AFU counterattack.
🟡 At #Bogdanovka, the RFAF advanced to the southern edge of the village.
🔴#Komar Direction:
🔴In #Bogatyr Sector (afore 'Konstantinopol Sector'), the RFAF advanced north of #Andreyevka in westerly direction and closed half of the pocket. Fighting continues to the west of the village (remember, previously the Russians were driven out of positions further west near #Alekseyevka).
🟡 In #Konstantinopol, Russian troops are still trying to regain control over the settlement. The AFU counterattack.
🟡 In #Razliv, the battle has reportedly shifted to the centre.
🟡On #Bogatyr, the RFAF are advancing on a broad front from the south.
🔴 In #Komar Sector, Russian troops move on #Otradnoye, located west of #Bogatyr. To the west, the battle for #Vesyoloye continue.
🔴#Zaporozhye Direction:
🔴In #Orekhov Section, positional fights in the are of#MalayaTokmachka - #Rabotino area. Further west reportedly:
🟡 In #Shcherbaki, the battle continues with varying success.
🟡 In #MalyeShcherbakito the west, the RFAF try to get full control of the village.
🟡 In #Stepovoye, further west, the clashes continued.
🟡 In #Lobkovoye as well.
🟡#Pyatikhatki remains RFAF controlled.
🔴 In #Kherson Direction, the RFAF shelled AFU positions, the AFU, in turn, villages.
💥#Russia:
🔵 The AFU struck the 'Transmash Plant' in #Donetsk (#DPR); in #Lugansk (#LPR), the 'Industrial Zone'; in #Belgorod region, #Stroitel and several villages; and in #Kursk Region, again the 'Sudhza Gas Metering Station' and finished it off.
🎬 Video 2
💥#RestUkraine:
🔵 The RFAF, in turn, struck targets in the #Kiev, #Vinnitsa, #Zhitomir, #Kharkov, #Sumy, #Nikolayev, #Cherkassy, #Poltava, and #Chernigov regions, as well as in #Dnepropetrovsk.
⚠️ The Term 'Reportedly' indicates that it is unconfirmed!
🎞Vids Source 1; Source 2;
🗺 Maps @olegtsarov; @creamy_caprice
📋 Sources: CC; Tsarov; ⚡️2M;
🇺🇦Fiend;😼Kotenok
🕰As of 29 Mar 2025; 06:44 GMT+3;📃28 Mar
📱 Join GLOBAL DEPTH to boost your TG Feed
💬Join Military Chat for Comments & Discussions
🇺🇦On Ukraine Observer you will find your daily independent Ukraine War Battle Update