| 
									
										
										
										
											2024-01-27 12:14:42 -06:00
										 |  |  | # https://taskfile.dev
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | version: "3"
 | 
					
						
							|  |  |  | vars:
 | 
					
						
							|  |  |  |   GREETING: Hello, World!
 | 
					
						
							|  |  |  | env:
 | 
					
						
							|  |  |  |   DEFAULT_GROUP: Home
 | 
					
						
							|  |  |  |   PRODUCTION: false
 | 
					
						
							|  |  |  |   API_PORT: 9000
 | 
					
						
							|  |  |  |   API_DOCS: True
 | 
					
						
							|  |  |  |   TOKEN_TIME: 256 # hours
 | 
					
						
							|  |  |  |   # mailplit SMTP config
 | 
					
						
							|  |  |  |   # start dev:services to use mailpit
 | 
					
						
							|  |  |  |   SMTP_HOST: localhost
 | 
					
						
							|  |  |  |   SMTP_PORT: 1025
 | 
					
						
							|  |  |  |   SMTP_FROM_NAME: MealieDev
 | 
					
						
							| 
									
										
										
										
											2024-02-10 13:26:24 +01:00
										 |  |  |   SMTP_FROM_EMAIL: mealie@example.com
 | 
					
						
							| 
									
										
										
										
											2024-02-10 13:30:02 +01:00
										 |  |  |   SMTP_AUTH_STRATEGY: NONE
 | 
					
						
							| 
									
										
										
										
											2024-02-13 08:39:21 +00:00
										 |  |  |   BASE_URL: http://localhost:3000
 | 
					
						
							| 
									
										
										
										
											2024-01-27 12:14:42 -06:00
										 |  |  |   LANG: en-US
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # loads .env file if it exists
 | 
					
						
							|  |  |  | dotenv:
 | 
					
						
							|  |  |  |   - .env
 | 
					
						
							|  |  |  |   - .dev.env
 | 
					
						
							|  |  |  | tasks:
 | 
					
						
							|  |  |  |   docs:gen:
 | 
					
						
							|  |  |  |     desc: runs the API documentation generator
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run python dev/code-generation/gen_docs_api.py
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docs:
 | 
					
						
							|  |  |  |     desc: runs the documentation server
 | 
					
						
							|  |  |  |     dir: docs
 | 
					
						
							|  |  |  |     deps:
 | 
					
						
							|  |  |  |       - docs:gen
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run python -m mkdocs serve
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setup:ui:
 | 
					
						
							|  |  |  |     desc: setup frontend dependencies
 | 
					
						
							|  |  |  |     dir: frontend
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - yarn install
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setup:py:
 | 
					
						
							|  |  |  |     desc: setup python dependencies
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry install --with main,dev,postgres
 | 
					
						
							|  |  |  |       - poetry run pre-commit install
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setup:model:
 | 
					
						
							|  |  |  |     desc: setup nlp model
 | 
					
						
							|  |  |  |     vars:
 | 
					
						
							|  |  |  |       MODEL_URL: https://github.com/mealie-recipes/nlp-model/releases/download/v1.0.0/model.crfmodel
 | 
					
						
							|  |  |  |       OUTPUT: ./mealie/services/parser_services/crfpp/model.crfmodel
 | 
					
						
							|  |  |  |     sources:
 | 
					
						
							|  |  |  |       # using pyproject.toml as the dependency since this should only ever need to run once
 | 
					
						
							|  |  |  |       # during setup. There is perhaps a better way to do this.
 | 
					
						
							|  |  |  |       - ./pyproject.toml
 | 
					
						
							|  |  |  |     generates:
 | 
					
						
							|  |  |  |       - ./mealie/services/parser_services/crfpp/model.crfmodel
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - curl -L0 {{ .MODEL_URL }} --output {{ .OUTPUT }}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   setup:
 | 
					
						
							|  |  |  |     desc: setup all dependencies
 | 
					
						
							|  |  |  |     deps:
 | 
					
						
							|  |  |  |       - setup:ui
 | 
					
						
							|  |  |  |       - setup:py
 | 
					
						
							|  |  |  |       - setup:model
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   dev:generate:
 | 
					
						
							|  |  |  |     desc: run code generators
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run python dev/code-generation/main.py
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   dev:services:
 | 
					
						
							|  |  |  |     desc: starts postgres and mailpit containers
 | 
					
						
							|  |  |  |     dir: docker
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - docker compose -f docker-compose.dev.yml up
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   dev:clean:
 | 
					
						
							|  |  |  |     desc: cleans up dev environment !! removes all data files !!
 | 
					
						
							|  |  |  |     vars:
 | 
					
						
							|  |  |  |       DEV_DATA: ""
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - rm -r ./dev/data/recipes/
 | 
					
						
							|  |  |  |       - rm -r ./dev/data/users/
 | 
					
						
							|  |  |  |       - rm -f ./dev/data/mealie*.db
 | 
					
						
							|  |  |  |       - rm -f ./dev/data/mealie.log
 | 
					
						
							|  |  |  |       - rm -f ./dev/data/.secret
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:mypy:
 | 
					
						
							|  |  |  |     desc: runs python type checking
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run mypy mealie
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:test:
 | 
					
						
							|  |  |  |     desc: runs python tests (support args after '--')
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run pytest {{ .CLI_ARGS }}
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:format:
 | 
					
						
							|  |  |  |     desc: runs python code formatter
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run black mealie
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:lint:
 | 
					
						
							|  |  |  |     desc: runs python linter
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run ruff mealie
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:check:
 | 
					
						
							|  |  |  |     desc: runs all linters, type checkers, and formatters
 | 
					
						
							|  |  |  |     deps:
 | 
					
						
							|  |  |  |       - py:format
 | 
					
						
							|  |  |  |       - py:lint
 | 
					
						
							|  |  |  |       - py:mypy
 | 
					
						
							|  |  |  |       - py:test
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:coverage:
 | 
					
						
							|  |  |  |     desc: runs python coverage and generates html report
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run pytest
 | 
					
						
							|  |  |  |       - poetry run coverage report -m
 | 
					
						
							|  |  |  |       - poetry run coveragepy-lcov
 | 
					
						
							|  |  |  |       - poetry run coverage html
 | 
					
						
							|  |  |  |       - open htmlcov/index.html
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:
 | 
					
						
							|  |  |  |     desc: runs the backend server
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run python mealie/db/init_db.py
 | 
					
						
							|  |  |  |       - poetry run python mealie/app.py
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   py:postgres:
 | 
					
						
							|  |  |  |     desc: runs the backend server configured for containerized postgres
 | 
					
						
							|  |  |  |     env:
 | 
					
						
							|  |  |  |       DB_ENGINE: postgres
 | 
					
						
							|  |  |  |       POSTGRES_USER: mealie
 | 
					
						
							|  |  |  |       POSTGRES_PASSWORD: mealie
 | 
					
						
							|  |  |  |       POSTGRES_SERVER: localhost
 | 
					
						
							|  |  |  |       POSTGRES_PORT: 5432
 | 
					
						
							|  |  |  |       POSTGRES_DB: mealie
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - poetry run python mealie/db/init_db.py
 | 
					
						
							|  |  |  |       - poetry run python mealie/app.py
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ui:build:
 | 
					
						
							|  |  |  |     desc: builds the frontend in frontend/dist
 | 
					
						
							|  |  |  |     dir: frontend
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - yarn build
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ui:lint:
 | 
					
						
							|  |  |  |     desc: runs the frontend linter
 | 
					
						
							|  |  |  |     dir: frontend
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - yarn lint
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ui:test:
 | 
					
						
							|  |  |  |     desc: runs the frontend tests
 | 
					
						
							|  |  |  |     dir: frontend
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - yarn test
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ui:check:
 | 
					
						
							|  |  |  |     desc: runs all frontend checks
 | 
					
						
							|  |  |  |     deps:
 | 
					
						
							|  |  |  |       - ui:lint
 | 
					
						
							|  |  |  |       - ui:test
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ui:
 | 
					
						
							|  |  |  |     desc: runs the frontend server
 | 
					
						
							|  |  |  |     dir: frontend
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - yarn run dev
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   docker:prod:
 | 
					
						
							|  |  |  |     desc: builds and runs the production docker image locally
 | 
					
						
							|  |  |  |     dir: docker
 | 
					
						
							|  |  |  |     cmds:
 | 
					
						
							|  |  |  |       - docker compose -f docker-compose.yml -p mealie up -d --build
 |