{ "version": "2.0.0", "tasks": [ // OTHER { "label": "checkforsettings", "type": "shell", "group": "none", "detail": "Check that settings.json has been created", "command": "bash -c ${workspaceFolder}/.vscode/config.sh", "problemMatcher": [] }, { "label": "localrun", "type": "shell", "group": "none", "dependsOn" : ["buildall"], "detail": "Check for local runs, create a plugins folder", "command": "mkdir -p plugins", "problemMatcher": [] }, { "label": "remoterun", "type": "shell", "group": "none", "dependsOn": [ "updateremote", "runpydeck" ], "detail": "Task for remote run launches", "command": "exit 0", "problemMatcher": [] }, { "label": "dependencies", "type": "shell", "group": "none", "detail": "Check for local runs, create a plugins folder", "command": "rsync -azp --rsh='ssh -p ${config:deckport} ${config:deckkey}' requirements.txt deck@${config:deckip}:${config:deckdir}/homebrew/dev/pluginloader/requirements.txt && ssh deck@${config:deckip} -p ${config:deckport} ${config:deckkey} 'python -m ensurepip && python -m pip install --upgrade pip && python -m pip install --upgrade setuptools && python -m pip install -r ${config:deckdir}/homebrew/dev/pluginloader/requirements.txt'", "problemMatcher": [] }, // BUILD { "label": "pnpmsetup", "type": "shell", "group": "build", "detail": "Setup pnpm", "command": "cd frontend && pnpm i", "problemMatcher": [] }, { "label": "buildfrontend", "type": "npm", "group": "build", "detail": "rollup -c", "script": "build", "path": "frontend", "problemMatcher": [], }, { "label": "buildall", "group": "build", "detail": "Deploy pluginloader to deck", "dependsOrder": "sequence", "dependsOn": [ "pnpmsetup", "buildfrontend" ], "problemMatcher": [] }, // DEPLOY { "label": "createfolders", "detail": "Create plugins folder in expected directory", "type": "shell", "group": "none", "dependsOn": [ "checkforsettings" ], "command": "ssh deck@${config:deckip} -p ${config:deckport} ${config:deckkey} 'mkdir -p ${config:deckdir}/homebrew/dev/pluginloader && mkdir -p ${config:deckdir}/homebrew/dev/plugins'", "problemMatcher": [] }, { "label": "deploy", "detail": "Deploy dev PluginLoader to deck", "type": "shell", "group": "none", "command": "rsync -azp --delete --rsh='ssh -p ${config:deckport} ${config:deckkey}' --exclude='.git/' --exclude='.github/' --exclude='.vscode/' --exclude='frontend/' --exclude='dist/' --exclude='contrib/' --exclude='*.log' --exclude='requirements.txt' --exclude='backend/__pycache__/' --exclude='.gitignore' . deck@${config:deckip}:${config:deckdir}/homebrew/dev/pluginloader", "problemMatcher": [] }, // RUN { "label": "runpydeck", "detail": "Run indev PluginLoader on Deck", "type": "shell", "group": "none", "dependsOn" : ["checkforsettings"], "command": "ssh deck@${config:deckip} -p ${config:deckport} ${config:deckkey} 'export PLUGIN_PATH=${config:deckdir}/homebrew/dev/plugins; export CHOWN_PLUGIN_PATH=0; cd ${config:deckdir}/homebrew/services; echo '${config:deckpass}' | sudo -SE python3 ${config:deckdir}/homebrew/dev/pluginloader/backend/main.py'", "problemMatcher": [] }, { "label": "runpylocal", "detail": "Run PluginLoader from python locally", "type": "shell", "group": "none", "command": "export PLUGIN_PATH=${workspaceFolder}/plugins; export CHOWN_PLUGIN_PATH=0; sudo -E python3 ${workspaceFolder}/backend/main.py", "problemMatcher": [] }, // ALL-IN-ONES { "label": "updateremote", "detail": "Build and deploy", "dependsOrder": "sequence", "group": "none", "dependsOn": [ "buildall", "deploy", ], "problemMatcher": [] }, { "label": "updateandrun", "detail": "Build, deploy and run", "dependsOrder": "sequence", "group": { "kind": "build", "isDefault": true }, "dependsOn": [ "buildall", "deploy", "runpydeck" ], "problemMatcher": [] }, { "label": "allinone", "detail": "Build, install dependencies, deploy and run", "dependsOrder": "sequence", "group": { "kind": "build", "isDefault": false }, "dependsOn": [ "buildall", "createfolders", "dependencies", "deploy", "runpydeck" ], "problemMatcher": [] } ] }