From 6660326d2967c3a09a8e52f4e46bdb9ccfddc77c Mon Sep 17 00:00:00 2001 From: Orce MARINKOVSKI Date: Wed, 25 Dec 2024 12:38:05 +0000 Subject: [PATCH] debug launch options + project init & launch tasks --- .devcontainer/vscode/launch.json | 65 ++++---- .devcontainer/vscode/tasks.json | 275 ++++++++++++++++++------------- 2 files changed, 199 insertions(+), 141 deletions(-) diff --git a/.devcontainer/vscode/launch.json b/.devcontainer/vscode/launch.json index 2c50af44b..44a213d80 100644 --- a/.devcontainer/vscode/launch.json +++ b/.devcontainer/vscode/launch.json @@ -2,41 +2,48 @@ "version": "0.2.0", "configurations": [ { - "name": "manage.py runserver", + "name": "Chrome: Debug Angular Frontend", + "type": "chrome", + "request": "launch", + "url": "http://localhost:4200", + "webRoot": "${workspaceFolder}/src-ui", + "preLaunchTask": "Start: Frontend Angular" + }, + { + "name": "Debug: Backend Server (manage.py runserver)", "type": "python", "request": "launch", "program": "${workspaceFolder}/src/manage.py", - "console": "integratedTerminal", - "justMyCode": true, "args": ["runserver"], - "django": true - }, - { - "name": "manage.py document_consumer", - "type": "python", - "request": "launch", - "program": "${workspaceFolder}/src/manage.py", - "console": "integratedTerminal", - "justMyCode": true, - "args": ["document_consumer"], - "django": true - }, - { - "name": "celery", - "type": "python", - "cwd": "${workspaceFolder}/src", - "request": "launch", - "module": "celery", + "django": true, "console": "integratedTerminal", "env": { - "PYTHONPATH": "${workspaceFolder}/src" - }, - "args": [ - "-A", - "paperless", - "worker", - "-l", - "DEBUG" + "PYTHONPATH": "${workspaceFolder}/src" + }, + "python": "${workspaceFolder}/.venv/bin/python" + }, + { + "name": "Debug: Consumer Service (manage.py document_consumer)", + "type": "python", + "request": "launch", + "program": "${workspaceFolder}/src/manage.py", + "args": ["document_consumer"], + "django": true, + "console": "integratedTerminal", + "env": { + "PYTHONPATH": "${workspaceFolder}/src" + }, + "python": "${workspaceFolder}/.venv/bin/python" + } + + ], + "compounds": [ + { + "name": "Debug: FullStack", + "configurations": [ + "Chrome: Debug Angular Frontend", + "Debug: Backend Server (manage.py runserver)", + "Debug: Consumer Service (manage.py document_consumer)" ] } ] diff --git a/.devcontainer/vscode/tasks.json b/.devcontainer/vscode/tasks.json index fa27ba6bc..cbe1d193c 100644 --- a/.devcontainer/vscode/tasks.json +++ b/.devcontainer/vscode/tasks.json @@ -1,27 +1,75 @@ { "version": "2.0.0", "tasks": [ - { - "label": "manage.py document_consumer", - "type": "shell", - "command": "pipenv run python manage.py document_consumer", - "group": "build", - "presentation": { - "echo": true, - "reveal": "always", - "focus": false, - "panel": "shared", - "showReuseMessage": false, - "clear": true, - "revealProblems": "onProblem" - }, - "options": { - "cwd": "${workspaceFolder}/src" - } - + { + "label": "Start: Frontend Angular", + "type": "shell", + "command": "npm start", + "isBackground": true, + "options": { + "cwd": "${workspaceFolder}/src-ui" + }, + "problemMatcher": [ + { + "owner": "custom", + "pattern": [ + { + "regexp": ".", + "file": 1, + "location": 2, + "message": 3 + } + ], + "background": { + "activeOnStart": true, + "beginsPattern": ".*", + "endsPattern": "Compiled successfully" + } + } + ], + "detail": "triggered also by launch option Chrome: Debug Angular Frontend" + }, + { + "label": "Start: Celery Worker", + "type": "shell", + "command": "pipenv run celery --app paperless worker -l DEBUG", + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" + }, + "options": { + "cwd": "${workspaceFolder}/src" + } }, { - "label": "manage.py runserver", + "label": "Start: Consumer Service (manage.py document_consumer)", + "type": "shell", + "command": "pipenv run python manage.py document_consumer", + "group": "build", + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" + }, + "options": { + "cwd": "${workspaceFolder}/src" + } + }, + { + "label": "Start: Backend Server (manage.py runserver)", "type": "shell", "command": "pipenv run python manage.py runserver", "group": "build", @@ -37,100 +85,103 @@ "options": { "cwd": "${workspaceFolder}/src" } - + }, + { + "label": "Maintenance: manage.py migrate", + "type": "shell", + "command": "pipenv run python manage.py migrate", + "group": "none", + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" }, - { - "label": "Maintenance: manage.py migrate", - "type": "shell", - "command": "pipenv run python manage.py migrate", - "group": "none", - "presentation": { - "echo": true, - "reveal": "always", - "focus": true, - "panel": "shared", - "showReuseMessage": false, - "clear": true, - "revealProblems": "onProblem" + "options": { + "cwd": "${workspaceFolder}/src" + } }, - "options": { - "cwd": "${workspaceFolder}/src" + { + "label": "Maintenance: manage.py createsuperuser", + "type": "shell", + "command": "pipenv run python manage.py createsuperuser", + "group": "none", + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" + }, + "options": { + "cwd": "${workspaceFolder}/src" + } + }, + { + "label": "Maintenance: Compile frontend for production", + "type": "shell", + "command": "npm ci && ./node_modules/.bin/ng build --configuration production", + "group": "none", + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" + }, + "options": { + "cwd": "${workspaceFolder}/src-ui" + } + }, + { + "label": "Maintenance: recreate .venv", + "type": "shell", + "command": "rm -R -v .venv/* || pipenv install --dev", + "group": "none", + "presentation": { + "echo": true, + "reveal": "always", + "focus": true, + "panel": "shared", + "showReuseMessage": false, + "clear": true, + "revealProblems": "onProblem" + }, + "options": { + "cwd": "${workspaceFolder}" + } + }, + { + "label": "Maintenance: Install Angular Frontend for Debug", + "type": "npm", + "script": "install", + "path": "src-ui", + "group": "clean", + "problemMatcher": [], + "detail": "install dependencies from package" + }, + { + "label": "Project Setup: Run all Init Tasks", + "dependsOn": [ + "Maintenance: manage.py migrate", + "Maintenance: manage.py createsuperuser", + "Maintenance: Compile frontend for production" + ] + }, + { + "label": "Project Start: Run all Services", + "dependsOn": [ + "Start: Celery Worker", + "Start: Consumer Service (manage.py document_consumer)", + "Start: Backend Server (manage.py runserver)" + ] } - }, - { - "label": "Maintenance: manage.py createsuperuser", - "type": "shell", - "command": "pipenv run python manage.py createsuperuser", - "group": "none", - "presentation": { - "echo": true, - "reveal": "always", - "focus": true, - "panel": "shared", - "showReuseMessage": false, - "clear": true, - "revealProblems": "onProblem" - }, - "options": { - "cwd": "${workspaceFolder}/src" - } - }, - { - "label": "compile frontend", - "type": "shell", - "command": "npm ci && ./node_modules/.bin/ng build --configuration production", - "group": "none", - "presentation": { - "echo": true, - "reveal": "always", - "focus": true, - "panel": "shared", - "showReuseMessage": false, - "clear": true, - "revealProblems": "onProblem" - }, - "options": { - "cwd": "${workspaceFolder}/src-ui" - } - }, - { - "label": "Maintenance: recreate .venv", - "type": "shell", - "command": "rm -R -v .venv/* || pipenv install --dev", - "group": "none", - "presentation": { - "echo": true, - "reveal": "always", - "focus": true, - "panel": "shared", - "showReuseMessage": false, - "clear": true, - "revealProblems": "onProblem" - }, - "options": { - "cwd": "${workspaceFolder}" - } - }, - { - "label": "Celery Worker", - "type": "shell", - "command": "pipenv run celery --app paperless worker -l DEBUG", - "group": { - "kind": "build", - "isDefault": true - }, - "presentation": { - "echo": true, - "reveal": "always", - "focus": true, - "panel": "shared", - "showReuseMessage": false, - "clear": true, - "revealProblems": "onProblem" - }, - "options": { - "cwd": "${workspaceFolder}/src" - } - } ] - } +}