Мы используем 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
• Смотрите какая удобная тулза для работы с логами: logmerger. Иногда бывает нужно осуществить сортировку данных из нескольких лог-файлов по времени и сравнить их между собой, так вот эта софтина как раз и предназначена для этого. Само собой logmerger имеет открытый исходный код. Детальное описание есть тут: https://github.com/ptmcg/logmerger
• Кстати, в качестве альтернативы есть еще https://lnav.org, тут найдете удобную фильтрацию, подсветку синтаксиса и другие полезные фичи.
#Разное#Tools
• Rustypaste — тулза, которая позволяет на собственном сервере организовать простой сервис для обмена файлами. Самое приятное — возможность создать короткие и одноразовые ссылочки для скачивания файла, HTTP аутентификация и возможность указания времени жизни для файла. Более подробная информация есть в блоге автора: https://blog.orhun.dev/blazingly-fast-file-sharing/
➡️https://github.com/orhun/rustypaste
#Разное#Tools
Toolkit Tiles
A collection of simple and useful tools that live in your Android Quick Settings panel for instant access.
🔗 Links:
- Download
- Tiles list
- Support group and update channel
- Source code
Developer: @WSTxda
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests
🏷 Tags: #Android#Tools
Winlay
Winlay is a free and open-source app developed by A3X. It allows you to download Windows, Android, and Linux files that can be used to test emulators such as Limbo PC Emulator x86, VirtualBox, and more.
🔗 Links:
- Download
- Screenshots
- Source code
Developer: A3X
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests
🏷 Tags: #Android#Tools
Torrent Search
An android app to search and download torrents from multiple providers.
🔗 Links:
- Download
- Screenshots
- Source code
Developer: Prajwal Chapagain
❤️ Support the Project
If this project makes your life easier, here are a few quick ways to show some love:
⭐ Star the repo/app
☕ Buy a coffee for the developer
🛠 Contribute code, issues, or pull-requests
🏷 Tags: #Android#Tools
🤖Hangster
This bot allows to create meeting and find a convenient day for all members of the group, as well as determine the best choice out of given options.
#tools#bot