{
  //sudo apt-get install lsof
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Kill3000",
      "type": "shell",
      "windows": {
          "command": "netstat -ano | findstr :3000 | for /F \"tokens=5\" %a in ('more') do taskkill /PID %a /F"
      },
      "linux": {
          "command": "lsof -ti:3000 | xargs kill"
      },
      "osx": {
          "command": "lsof -ti:3000 | xargs kill"
      },
      "presentation": {
          "reveal": "always",
          "panel": "new"
      },
      "problemMatcher": []
  },
  {
    "label": "Kill8800",
    "type": "shell",
    "windows": {
        "command": "netstat -ano | findstr :8800 | for /F \"tokens=5\" %a in ('more') do taskkill /PID %a /F"
    },
    "linux": {
        "command": "lsof -ti:8800 | xargs kill"
    },
    "osx": {
        "command": "lsof -ti:8800 | xargs kill"
    },
    "presentation": {
        "reveal": "always",
        "panel": "new"
    },
    "problemMatcher": []
},
    {
      "label": "Install Backend Dependencies",
      "type": "shell",
      "command": "npm install",
      "options": {
        "cwd": "${workspaceFolder}/backend"
      }
    },
    {
      "label": "Start Backend",
      "type": "shell",
      "command": "npx ts-node src/index.ts",
      "options": {
        "cwd": "${workspaceFolder}/backend"
      },
      "isBackground": true,
      "problemMatcher": {
        "owner": "typescript",
        "pattern": {
          "regexp": "^.*$",
          "file": 1,
          "location": 2,
          "message": 3
        },
        "background": {
          "activeOnStart": true,
          "beginsPattern": "^.*$",
          "endsPattern": "^Server läuft auf Port.*$"
        }
      }
    },
    {
      "label": "Start Frontend",
      "type": "shell",
      "command": "npm start",
      "options": { "cwd": "${workspaceFolder}/frontend" },
      "isBackground": true,
      "problemMatcher": {
        "owner": "javascript",
        "pattern": {
          "regexp": "^.*$",
          "file": 1,
          "location": 2,
          "message": 3
        },
        "background": {
          "activeOnStart": true,
          "beginsPattern": "^.*$",
          "endsPattern": "No issues found"
        }
      }
    },
    {
      "type": "shell",
      "label": "Docker Build",
      "command": "docker build --build-arg NODE_VERSION=$(node -v) -t ${workspaceFolderBasename} .",
      "group": "build"
    },
    {
      "label": "Terminate All Tasks",
      "command": "echo ${input:terminate}",
      "type": "shell",
      "problemMatcher": []
    },
    {
      "label": "only Frontend",
      "type": "shell",
      "command": "npm start",
      "dependsOn": ["Start Backend"],
      "options": { "cwd": "${workspaceFolder}/frontend" },
      "isBackground": true,
      "problemMatcher": {
        "owner": "javascript",
        "pattern": {
          "regexp": "^.*$",
          "file": 1,
          "location": 2,
          "message": 3
        },
        "background": {
          "activeOnStart": true,
          "beginsPattern": "^.*$",
          "endsPattern": "Compiled successfully"
        }
      }
    },
  ],
  "inputs": [
    {
      "id": "terminate",
      "type": "command",
      "command": "workbench.action.tasks.terminate",
      "args": "terminateAll"
    }
  ]
}