[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/hydrogram/hydrogram/dev/Makefile [Back]  [Original]

PYTHON = python
SPHINX_BUILD = sphinx-build
SPHINX_AUTOBUILD = sphinx-autobuild
TOWNCRIER = towncrier

HYDROGRAM_DIR = hydrogram
DOCS_DIR = docs
DOCS_SOURCE = $(DOCS_DIR)/source
DOCS_BUILD = $(DOCS_DIR)/build
API_DIRS = $(HYDROGRAM_DIR)/errors/exceptions $(HYDROGRAM_DIR)/raw/all.py $(HYDROGRAM_DIR)/raw/base $(HYDROGRAM_DIR)/raw/functions $(HYDROGRAM_DIR)/raw/types
DOCS_API_DIRS = $(DOCS_SOURCE)/api/bound-methods $(DOCS_SOURCE)/api/methods $(DOCS_SOURCE)/api/types $(DOCS_SOURCE)/telegram

.PHONY: all clean clean-api clean-docs api api-raw api-errors docs docs-compile docs-serve live-docs towncrier towncrier-draft dev-tools check-api-schema generate-docs-json compare-bot-api cherry-pick-pyro help

all: api docs

clean: clean-api clean-docs
	@echo "All directories cleaned successfully"

clean-api:
	@echo "Cleaning generated API files..."
	@rm -rf $(API_DIRS)

clean-docs:
	@echo "Cleaning generated documentation..."
	@rm -rf $(DOCS_BUILD) $(DOCS_API_DIRS)

api: api-raw api-errors
	@echo "API compilation finished"

api-raw:
	@echo "Compiling raw API..."
	@$(PYTHON) -c "from compiler.api.compiler import start; start()"

api-errors:
	@echo "Compiling API errors..."
	@$(PYTHON) -c "from compiler.errors.compiler import start; start()"

docs: docs-compile docs-serve

docs-compile:
	@echo "Compiling documentation..."
	@$(PYTHON) -c "from compiler.docs.compiler import start; start()"

docs-serve:
	@echo "Building and serving documentation..."
	@$(SPHINX_BUILD) -b html $(DOCS_SOURCE) $(DOCS_BUILD)/html -j auto

live-docs:
	@echo "Starting documentation server with live reload..."
	@$(SPHINX_AUTOBUILD) $(DOCS_SOURCE) $(DOCS_BUILD)/html -j auto --watch $(HYDROGRAM_DIR)

towncrier:
	@echo "Generating release notes..."
	@$(TOWNCRIER) build --yes

towncrier-draft:
	@echo "Generating draft release notes..."
	@$(TOWNCRIER) build --draft

check-api-schema:
	@echo "Checking Telegram API schema for updates..."
	@$(PYTHON) dev_tools/check_api_schema_updates.py

generate-docs-json:
	@echo "Generating API documentation JSON..."
	@$(PYTHON) dev_tools/generate_docs_json.py

compare-bot-api:
	@echo "Comparing implementation against Bot API..."
	@$(PYTHON) dev_tools/compare_to_bot_api.py

cherry-pick-pyro:
	@echo "Usage: make cherry-pick-pyro TYPE= ID="
	@[ "$(TYPE)" ] && [ "$(ID)" ] && $(PYTHON) dev_tools/cherry_pick_pyro.py $(TYPE) $(ID) || echo "Please provide TYPE and ID parameters"

help:
	@echo "Available targets:"
	@echo "  all            : Compile API and documentation"
	@echo "  clean          : Remove all generated files"
	@echo "  api            : Compile all API components"
	@echo "  docs           : Compile and serve documentation"
	@echo "  live-docs      : Start documentation server with live reload"
	@echo "  towncrier      : Generate release notes"
	@echo "  towncrier-draft: Generate draft release notes"
	@echo "  check-api-schema: Check Telegram API schema for updates"
	@echo "  generate-docs-json: Generate API documentation JSON"
	@echo "  compare-bot-api: Compare implementation against Bot API"
	@echo "  cherry-pick-pyro: Cherry-pick code from Pyrogram (usage: make cherry-pick-pyro TYPE= ID=)"

Web Proxy Viewer  |  New URL  |  Original Page