Мы используем 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
#Apple
Apple Store 上线国家补贴,仅限北京上海
🔗Apple Store (中国大陆)
Apple Store 官方在中国大陆上线了国家补贴,购买 iPhone、iPad 或指定配置 Apple Watch 最高优惠 RMB 500。商品总价须低于 RMB 6000。购买符合条件的 Mac 机型最高优惠 RMB 2000。升级配置不可享受补贴优惠。仅限 Apple Store 在线商店 (北京收货地址) 和 Apple Store 零售店 (上海地区)。
常见问题
符合资格的消费者购买参与活动的 iPhone、iPad、Apple Watch 时,可享商品到手价基础上再立减 15% 的国家补贴,每件补贴不超过 500 元,仅限到手价不超过 6000 元的单件商品;购买参与活动的 Mac 时,可享商品到手价基础上再立减 20% 的国家补贴,每件补贴不超过 2000 元。如该产品同时参与 Apple 或其合作伙伴提供的其他优惠活动,优惠额度部分不计算国家补贴。实际补贴金额以商品购买页面展示为准。
符合资格的消费者每类产品仅可享补贴 1 件。
参与国家补贴的订单仅可包含 1 件参与活动的商品。若订单包含多个商品,则该订单中的所有商品均无法享受国家补贴。
参与国家补贴的订单不支持与 iPhone 年年焕新计划、Apple Trade In 换购计划或 AppleCare+ 服务计划同时下单购买。
参与国家补贴的订单不支持保价退差。
Apple Store 在线商店:参与国家补贴的 Apple Store 在线商店订单不支持 Apple Store 零售店取货服务、快送服务,不支持定制化服务、镌刻服务。按照政府的相关规定,参与国家补贴的 Apple Store 在线商店订单对签收时间有特殊要求。消费者须在下单之日起 6 天内完成签收,否则订单将被取消,商品由承运商取回。在承运商经尝试送货,消费者无法签收的情况下,订单可能会被取消。商品发货日期超过一定期限的非现货商品可能无法享受国家补贴。请在商品购买页面确认是否具备补贴活动参与资格。参与国家补贴的 Apple Store 在线商店订单不支持部分退款,不支持收货地址更改,不支持换货。参与国家补贴的 Apple Store 在线商店订单需在签收快递时配合承运商完成现场拆封、激活及拍照存档等国家补贴政策所要求的操作。如无法在签收当场完成激活或配合拍照存档等操作,订单将被取消,商品由承运商取回。
Apple Store 零售店:于上海地区 Apple Store 零售店参与活动的消费者,在享受国家补贴时,必须出示身份证件,提供姓名,用以按要求开具个人实名信息的发票。参与国家补贴的 Apple Store 零售店订单不支持部分退款,不支持换货,不支持部分付款方式,不支持定制化服务。参与国家补贴的 Apple Store 零售店订单,购买后需在门店配合工作人员完成现场拆封、激活及拍照存档等国家补贴政策所要求的操作。如不能在购买当场完成激活或配合拍照存档等操作,则无法享受国家补贴。
本次活动仅针对个人消费者。参与国家补贴的订单仅支持开具个人的增值税普通发票 (如需发票抬头,仅可开具消费者本人实名信息),不支持变更抬头,不支持企业抬头。
#Promotions#AppleStore
📮 频道 @AppPie