chore: init
This commit is contained in:
commit
85b28835d1
8 files changed
+294
No files matched your search
@@ -0,0 +1,51 @@
|
||||
VENV := .venv
|
||||
PYTHON := $(VENV)/bin/python
|
||||
PIP := $(VENV)/bin/pip
|
||||
WHEELS_DIR := wheels
|
||||
REQUIREMENTS := requirements.txt
|
||||
|
||||
MAKECMDGOALS_TARGETS := install freeze wheels sync sync-offline clean help
|
||||
PKG := $(filter-out $(MAKECMDGOALS_TARGETS),$(MAKECMDGOALS))
|
||||
|
||||
.PHONY: install freeze wheels sync sync-offline clean help venv
|
||||
|
||||
help:
|
||||
@echo "make install <pkg> [<pkg> ...] - установить пакет(ы) в $(VENV), обновить $(REQUIREMENTS), собрать wheel в $(WHEELS_DIR)/"
|
||||
@echo "make sync - установить все пакеты из $(REQUIREMENTS) (из индекса)"
|
||||
@echo "make sync-offline - установить все пакеты из $(REQUIREMENTS) только из $(WHEELS_DIR)/, без обращения к индексу"
|
||||
@echo "make freeze - перезаписать $(REQUIREMENTS) текущим состоянием окружения"
|
||||
@echo "make wheels - собрать wheel для всех пакетов из $(REQUIREMENTS)"
|
||||
@echo "make clean - удалить $(WHEELS_DIR)/"
|
||||
|
||||
venv:
|
||||
@test -d $(VENV) || python3 -m venv $(VENV)
|
||||
|
||||
install: venv
|
||||
ifeq ($(strip $(PKG)),)
|
||||
$(error Укажите пакет: make install <package>, например make install redis)
|
||||
endif
|
||||
$(PIP) install --upgrade $(PKG)
|
||||
$(PIP) freeze > $(REQUIREMENTS)
|
||||
@mkdir -p $(WHEELS_DIR)
|
||||
$(PIP) wheel $(PKG) -w $(WHEELS_DIR)
|
||||
@echo "Готово: $(PKG) установлен, $(REQUIREMENTS) обновлён, wheel-пакеты в $(WHEELS_DIR)/"
|
||||
|
||||
sync: venv
|
||||
$(PIP) install -r $(REQUIREMENTS)
|
||||
|
||||
sync-offline: venv
|
||||
$(PIP) install --no-index --find-links=$(WHEELS_DIR) -r $(REQUIREMENTS)
|
||||
|
||||
freeze: venv
|
||||
$(PIP) freeze > $(REQUIREMENTS)
|
||||
|
||||
wheels: venv
|
||||
@mkdir -p $(WHEELS_DIR)
|
||||
$(PIP) wheel -r $(REQUIREMENTS) -w $(WHEELS_DIR)
|
||||
|
||||
clean:
|
||||
rm -rf $(WHEELS_DIR)
|
||||
|
||||
# позволяет передавать имя пакета как аргумент: make install redis
|
||||
%:
|
||||
@:
|
||||
Reference in new issue
Block a user