diff --git a/Makefile b/Makefile index 71bbbc2..96b9661 100755 --- a/Makefile +++ b/Makefile @@ -1,45 +1,44 @@ -#/bin/make +#!/usr/bin/env make -ANKI_SERVER_NAME ?= "Anki Sync Server" -ANKI_SERVER_VERSION ?= "v0.1.0" -ANKI_SERVER_DESCRIPTION ?= "Self-hosted Anki Sync Server." +ANKISYNCD_NAME ?= Anki Sync Server +ANKISYNCD_VERSION ?= v2.2.0 +ANKISYNCD_DESCRIPTION ?= Self-hosted Anki Sync Server. ENV ?= local -include config/.env.${ENV} +-include config/secrets/.env.*.${ENV} export .DEFAULT_GOAL := help .PHONY: help #: Display list of command and exit. help: - @awk 'BEGIN {FS = " ?#?: "; print ""${ANKI_SERVER_NAME}" "${ANKI_SERVER_VERSION}"\n"${ANKI_SERVER_DESCRIPTION}"\n\nUsage: make \033[36m\033[0m\n\nCommands:"} /^.PHONY: ?[a-zA-Z_-]/ { printf " \033[36m%-10s\033[0m %s\n", $$2, $$3 }' $(MAKEFILE_LIST) + @${AWK} 'BEGIN {FS = " ?#?: "; print "${ANKISYNCD_NAME} ${ANKISYNCD_VERSION}\n${ANKISYNCD_DESCRIPTION}\n\nUsage: make \033[36m\033[0m\n\nCommands:"} /^.PHONY: ?[a-zA-Z_-]/ { printf " \033[36m%-10s\033[0m %s\n", $$2, $$3 }' $(MAKEFILE_LIST) .PHONY: docs #: Build and serve documentation. -docs: print-env - @${PYTHON} -m mkdocs ${MKDOCS_OPTION} -f docs/mkdocs.yml +docs: + @${MKDOCS} ${MKDOCS_CMD} -f docs/mkdocs.yml ${MKDOCS_OPTS} .PHONY: tests #: Run unit tests. tests: - @${PYTHON} -m unittest discover -s tests + @${UNITTEST} discover -s tests .PHONY: run run: - @${PYTHON} -m ankisyncd + @${PYTHON} src/ankisyncd/__main__.py +# Run scripts using make %: - @test -f scripts/${*}.sh - @${BASH} scripts/${*}.sh + @if [[ -f "scripts/${*}.sh" ]]; then \ + ${BASH} "scripts/${*}.sh"; fi .PHONY: init #: Download Python dependencies. init: @${POETRY} install -%: - @test -f scripts/${*}.sh - @${SHELL} scripts/${*}.sh - -.PHONY: release #: Tag and deploy to PyPI. +.PHONY: release #: Create new Git release and tags. release: - @${SHELL} scripts/release.sh + @${BASH} scripts/release.sh + .PHONY: open open: - @${OPEN} http://127.0.0.1:27701 \ No newline at end of file + @${OPEN} ${ANKISYNCD_URL} \ No newline at end of file diff --git a/config/.env.example b/config/.env.example index a9c8106..6098cf5 100644 --- a/config/.env.example +++ b/config/.env.example @@ -1,9 +1,5 @@ -# .env.example (anki-sync-server) - -## Make -POETRY=poetry -PYTHON=poetry run python -BASH=bash +# file: .env.example (ankisyncd) +# cp config/.env.example config/.env.local ## Ankisyncd ANKISYNCD_HOST=0.0.0.0 @@ -13,18 +9,31 @@ ANKISYNCD_BASE_URL=/sync/ ANKISYNCD_BASE_MEDIA_URL=/msync/ ANKISYNCD_AUTH_DB_PATH=./auth.db ANKISYNCD_SESSION_DB_PATH=./session.db - -# ANKISYNCD_FULL_SYNC_MANAGER -# ANKISYNCD_SESSION_MANAGER -# ANKISYNCD_USER_MANAGER -# ANKISYNCD_COLLECTION_WRAPPER +### ANKISYNCD_FULL_SYNC_MANAGER +### ANKISYNCD_SESSION_MANAGER +### ANKISYNCD_USER_MANAGER +### ANKISYNCD_COLLECTION_WRAPPER +ANKISYNCD_URL=http://${ANKISYNCD_HOST}:${ANKISYNCD_PORT} ## Mkdocs -MKDOCS_OPTION=serve +MKDOCS_HOST=localhost +MKDOCS_PORT=5000 +MKDOCS_OPTS=-a ${MKDOCS_HOST}:${MKDOCS_PORT} +MKDOCS_CMD=serve ## Jupyter ### JUPYTER_CMD ### JUPYTER_NOTEBOOK_DIR -## Path +## Make +AWK=awk +BASH=bash +POETRY=poetry +PYTHON=python +MKDOCS=mkdocs +JUPYTER=jupyter +UNITTEST=python -m unittest + +## Shell +SHELL=${BASH} PATH:=.venv/bin:${PATH} \ No newline at end of file