From 121581e460f5f2e44543a2a4e1f43a26ed0fadeb Mon Sep 17 00:00:00 2001 From: SpikeHD Date: Sun, 1 May 2022 19:09:10 -0700 Subject: [PATCH] download script for gc --- .gitignore | 1 + resources/index.html | 1 + resources/js/gcdownloader.js | 24 ++++++++++++++++++++++++ resources/js/helpers.js | 1 + scripts/gcdownload.cmd | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 61 insertions(+) create mode 100644 resources/js/gcdownloader.js create mode 100644 scripts/gcdownload.cmd diff --git a/.gitignore b/.gitignore index 2ccb550..66207a5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ bin/ dist/ ext/ temp/ +gc*/ resources/js/neutralino.js resources/bg/official diff --git a/resources/index.html b/resources/index.html index f59f5ea..81a7e7a 100644 --- a/resources/index.html +++ b/resources/index.html @@ -8,6 +8,7 @@ + diff --git a/resources/js/gcdownloader.js b/resources/js/gcdownloader.js new file mode 100644 index 0000000..c1b5e1b --- /dev/null +++ b/resources/js/gcdownloader.js @@ -0,0 +1,24 @@ +async function clearGCInstallation() { + Neutralino.os.execCommand(`del /s /q "./gc"`) +} + +async function downloadGC(branch) { + const config = await getCfg() + + // If we are pulling from a new branch, delete the old installation + if (config.grasscutterBranch !== branch) await clearGCInstallation() + + // Keystore for branch (since they can differ) + const keystoreUrl = `https://github.com/Grasscutters/Grasscutter/raw/${branch}/keystore.p12` + + // External service that allows un-authed artifact downloading + const artiUrl = `https://nightly.link/Grasscutters/Grasscutter/workflows/build/${branch}/Grasscutter.zip` + + // Run installer + createCmdWindow(`.\\scripts\\gcdownload.cmd ${artiUrl} ${keystoreUrl} ${branch}`) + + // Set current installation in config + config.grasscutterBranch = branch + + Neutralino.storage.setData('config', JSON.stringify(config)) +} \ No newline at end of file diff --git a/resources/js/helpers.js b/resources/js/helpers.js index c0b31c0..ad313fa 100644 --- a/resources/js/helpers.js +++ b/resources/js/helpers.js @@ -12,6 +12,7 @@ serverLaunchPanel: false, language: 'en', useHttps: true, + grasscutterBranch: '', } const cfgStr = await Neutralino.storage.getData('config').catch(e => { // The data isn't set, so this is our first time opening diff --git a/scripts/gcdownload.cmd b/scripts/gcdownload.cmd new file mode 100644 index 0000000..9105de2 --- /dev/null +++ b/scripts/gcdownload.cmd @@ -0,0 +1,34 @@ +@echo off + +set KEYSTORE_URL=%1 +set ARTIFACT_URL=%2 +set BRANCH=%3 +set FOLDER_NAME=".\gc-%BRANCH%" + +if not exist %FOLDER_NAME% mkdir %FOLDER_NAME% +if not exist ".\temp" mkdir ".\temp" + +echo Downloading Grasscutter prebuilt jar... + +:: Download the jar +powershell Invoke-WebRequest -Uri %KEYSTORE_URL% -OutFile "./temp/gcjar.zip" + +echo Extracting... + +powershell Expand-Archive -Path "./temp/gcjar.zip" -DestinationPath %FOLDER_NAME% -Force + +:: Download the keystore.p12 file + +echo Downloading keystore.p12... + +powershell Invoke-WebRequest -Uri %ARTIFACT_URL% -OutFile "./%FOLDER_NAME%/keystore.p12" + +:: Remove temp stuff +del /s /q "./temp" + +echo Done, latest Grasscutter %BRANCH% now downloaded in %FOLDER_NAME% + +pause + +exit /b +