Мы используем 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
😄Thought
➖➖➖➖➖➖
🔘As a verb thought is the past tense of 'think':
🔜I thought about the problem for a little while.
🔘 an idea or plan.
🔜I've had a thought about what we should do next.
As a plural noun, thoughts can be:
🔘our opinions or beliefs.
🔜What are your thoughts on the best way to learn English?
As an uncountable noun, thought can mean:
🔘‘careful consideration’.
🔜We need to give more thought to this project.
#Thought👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
前些日子在網上衝浪(不知道現在還有沒有人在用 surfing the Internet / surf on the Internet 這樣的說法)時,發現了 NirSoft 這個由開發人員 Nir Sofer 所創建的個人網站。
根據他在關於頁面的說法,這個網站最初建立於 2001 年,用來陳列自己開發的小工具;起初託管在一些免費服務上,後來隨著廣告與惡意使用者逐漸增多,在 2004 年購買了自己的網域。
裡面有許許多多採用 C++ 開發的 Windows 實用小程式,並且據作者所說,這些程式具備可攜性(portable),大多情況下不需要安裝且不會存取註冊表;裡面 Network Monitoring, Internet Related Utilities, Command-Line Utilities, Programmer Tools 和 System Utilities 的部分可以尋尋寶。
作者還有維護一個部落格,目前最新的一篇文章是 2023/08/19 發佈的;長年來都在業餘時間開發小工具,還能樂此不疲且碼耕不輟,這應該是許多開發者想活成的樣子了。
#Thought
在 Do You Want To Be a News Source? Just Change Your Account Name 一文中,提到了過去幾年在 Twitter 上出現的幾個虛假新聞帳號案例,這類帳號通常是由既有的帳號修改使用者名稱(username)以及帳號名稱,而非創建新的使用者,這樣的操作手法需要透過永久 UID 來辨認(可以透過 TwitterID 這個工具查詢與反查)。
__
這個電子報還有其他不錯的文章,比如 How to Find Swarms of Fake Twitter Followers 一文,表示這類假帳號通常具備兩個特徵:
1. 短時間內獲得數百或數千名的假帳號關注
2. 假帳號通常會在固定的時間或時間範圍內創建帳號
文中有提供一段簡單的 Python 程式來辨別上述的特徵,但需要具備 Twitter 開發者帳號並啟用 API 來操作,這在馬總搞了一堆奇妙的操作後,可能得另謀他法了…
#Thought