Files
thechart/Makefile

51 lines
2.2 KiB
Makefile

TARGET=thechart
VERSION=1.0.0
ROOT=/home/will
ICON=chart-671.png
help: ## Show this help
@grep -E -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
setup-env: ## Set up the development environment
@echo "Setting up the development environment..."
pip install poetry
poetry env use 3.13
poetry install
poetry lock
poetry run pre-commit install --install-hooks --overwrite
poetry run pre-commit autoupdate
poetry run pre-commit run --all-files
build: ## Build the Docker image
@echo "Building the Docker image..."
docker buildx build --platform linux/amd64,linux/arm64 -t ${IMAGE} --push .
install: ## Install the application
@echo "Installing the application..."
pyinstaller --name ${TARGET} --optimize 2 --onefile --windowed --hidden-import='PIL._tkinter_finder' --icon='${ICON}' --add-data=".env:." --add-data='./chart-671.png:.' --add-data='./thechart_data.csv:.' src/main.py
cp -f ./thechart_data.csv ${ROOT}/Documents/
cp -f ./dist/${TARGET} ${ROOT}/Applications/
cp -f ./deploy/${TARGET}.desktop ${ROOT}/.local/share/applications/
desktop-file-validate ${ROOT}/.local/share/applications/${TARGET}.desktop
run: ## Run the application
@echo "Running the application..."
python src/main.py
start: ## Start the application
@echo "Starting the application..."
docker-compose up -d --build
stop: ## Stop the application
@echo "Stopping the application..."
docker-compose down
test: ## Run the tests
@echo "Running the tests..."
docker-compose exec ${TARGET} pipenv run pytest -v --tb=short
lint: ## Run the linter
@echo "Running the linter..."
docker-compose exec ${TARGET} pipenv run pre-commit run --all-files
format: ## Format the code
@echo "Formatting the code..."
docker-compose exec ${TARGET} pipenv run pre-commit run --all-files --show-diff
shell: ## Open a shell in the container
@echo "Opening a shell in the container..."
docker-compose exec -it ${TARGET} /bin/bash
requirements: ## Export the requirements to a file
@echo "Exporting requirements to requirements.txt..."
poetry export --without-hashes -f requirements.txt -o requirements.txt
.PHONY: setup-env build install run start stop test lint format shell requirements help