diff options
| author | AAGaming <aagaming00@protonmail.com> | 2022-06-17 18:43:53 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-17 18:43:53 -0400 |
| commit | 99b4b939bdd2140aecf19ddb09a59b44e9cd117d (patch) | |
| tree | d1a4c154101cb43b34c782a310e9c0699c9cf005 /.vscode | |
| parent | a95bf94d878f61869895bb22cbff1b4f524c5dca (diff) | |
| download | decky-loader-99b4b939bdd2140aecf19ddb09a59b44e9cd117d.tar.gz decky-loader-99b4b939bdd2140aecf19ddb09a59b44e9cd117d.zip | |
Implement React-based plugin store (#81)
Co-authored-by: TrainDoctor <11465594+TrainDoctor@users.noreply.github.com>
Co-authored-by: WerWolv <werwolv98@gmail.com>
Diffstat (limited to '.vscode')
| -rwxr-xr-x | .vscode/config.sh | 12 | ||||
| -rw-r--r-- | .vscode/defsettings.json | 7 | ||||
| -rw-r--r-- | .vscode/launch.json | 6 | ||||
| -rw-r--r-- | .vscode/tasks.json | 129 |
4 files changed, 146 insertions, 8 deletions
diff --git a/.vscode/config.sh b/.vscode/config.sh new file mode 100755 index 00000000..b45c7944 --- /dev/null +++ b/.vscode/config.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]:-$0}"; )" &> /dev/null && pwd 2> /dev/null; )"; +# printf "${SCRIPT_DIR}\n" +# printf "$(dirname $0)\n" +if ! [[ -e "${SCRIPT_DIR}/settings.json" ]]; then + printf '.vscode/settings.json does not exist. Creating it with default settings. Exiting afterwards. Run your task again.\n\n' + cp "${SCRIPT_DIR}/defsettings.json" "${SCRIPT_DIR}/settings.json" + exit 1 +else + printf '.vscode/settings.json does exist. Congrats.\n' + printf 'Make sure to change settings.json to match your deck.\n' +fi
\ No newline at end of file diff --git a/.vscode/defsettings.json b/.vscode/defsettings.json new file mode 100644 index 00000000..7360735f --- /dev/null +++ b/.vscode/defsettings.json @@ -0,0 +1,7 @@ +{ + "deckip" : "0.0.0.0", + "deckport" : "22", + "deckpass" : "ssap", + "deckkey" : "-i ${env:HOME}/.ssh/id_rsa", + "deckdir" : "/home/deck" +}
\ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index 39142df5..ff1f142a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,16 +2,16 @@ "version": "0.2.0", "configurations": [ { - "name": "Debug", + "name": "Debug (Local)", "type": "python", "request": "launch", "program": "${workspaceFolder}/backend/main.py", "cwd": "${workspaceFolder}/backend", "console": "integratedTerminal", "env": { - "PLUGIN_PATH": "/home/deck/homebrew/plugins" + "PLUGIN_PATH": "${workspaceFolder}/plugins" }, - "preLaunchTask": "Build frontend" + "preLaunchTask": "localrun" } ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index bbfee13f..3f0f64fd 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,15 +1,134 @@ { "version": "2.0.0", "tasks": [ + // OTHER { - "label": "Stop Service", + "label": "checkforsettings", "type": "shell", - "command":"systemctl --user stop plugin_loader", + "group": "none", + "detail": "Check that settings.json has been created", + "command": "bash -c ${workspaceFolder}/.vscode/config.sh", + "problemMatcher": [] }, { - "label": "Build frontend", + "label": "localrun", "type": "shell", - "command":"cd ${workspaceFolder}/frontend; npm run build", - } + "group": "none", + "dependsOn" : ["buildall"], + "detail": "Check for local runs, create a plugins folder", + "command": "mkdir -p plugins", + "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": [] + }, + { + "label": "deployall", + "dependsOrder": "sequence", + "group": "none", + "dependsOn": [ + "createfolders", + "dependencies", + "deploy" + ], + "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; 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", + "deployall", + ], + "problemMatcher": [] + }, + { + "label": "allinone", + "detail": "Build, deploy and run", + "dependsOrder": "sequence", + "group": "none", + "dependsOn": [ + "buildall", + "deployall", + "runpydeck" + ], + "problemMatcher": [] + } ] } |
