summaryrefslogtreecommitdiff
path: root/.vscode
diff options
context:
space:
mode:
authorAAGaming <aagaming00@protonmail.com>2022-06-17 18:43:53 -0400
committerGitHub <noreply@github.com>2022-06-17 18:43:53 -0400
commit99b4b939bdd2140aecf19ddb09a59b44e9cd117d (patch)
treed1a4c154101cb43b34c782a310e9c0699c9cf005 /.vscode
parenta95bf94d878f61869895bb22cbff1b4f524c5dca (diff)
downloaddecky-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.sh12
-rw-r--r--.vscode/defsettings.json7
-rw-r--r--.vscode/launch.json6
-rw-r--r--.vscode/tasks.json129
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": []
+ }
]
}