From 5fba6e9e38b819fb640d7d7aea0574ae738a8e84 Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Tue, 22 Oct 2024 17:32:01 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=8D=EF=B8=8F[Update]=20Installer=20:?= =?UTF-8?q?=20=E3=83=80=E3=82=A6=E3=83=B3=E3=83=AD=E3=83=BC=E3=83=89?= =?UTF-8?q?=E5=BD=A2=E5=BC=8F=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 以下のpluginをusername\AppData\Local\tauri\NSIS\Pluginsに保存する必要がある - inetc : https://nsis.sourceforge.io/Inetc_plug-in - nsisunz : https://nsis.sourceforge.io/Nsisunz_plug-in --- src-tauri/nsis/template.nsi | 69 ++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/src-tauri/nsis/template.nsi b/src-tauri/nsis/template.nsi index 72b27b8f..bbc761f8 100644 --- a/src-tauri/nsis/template.nsi +++ b/src-tauri/nsis/template.nsi @@ -715,21 +715,64 @@ Section Install !insertmacro CheckIfAppIsRunning - ; Copy main executable - File "${MAINBINARYSRCPATH}" + ; ; Copy main executable + ; File "${MAINBINARYSRCPATH}" - ; Copy resources - {{#each resources_dirs}} - CreateDirectory "$INSTDIR\\{{this}}" - {{/each}} - {{#each resources}} - File /a "/oname={{this.[1]}}" "{{unescape-dollar-sign @key}}" - {{/each}} + ; ; Copy resources + ; {{#each resources_dirs}} + ; CreateDirectory "$INSTDIR\\{{this}}" + ; {{/each}} + ; {{#each resources}} + ; File /a "/oname={{this.[1]}}" "{{unescape-dollar-sign @key}}" + ; {{/each}} - ; Copy external binaries - {{#each binaries}} - File /a "/oname={{this}}" "{{unescape-dollar-sign @key}}" - {{/each}} + ; ; Copy external binaries + ; {{#each binaries}} + ; File /a "/oname={{this}}" "{{unescape-dollar-sign @key}}" + ; {{/each}} + + ; 指定のURLからファイルをダウンロード + !define SOFTWARE_RELEASE_URL "https://api.github.com/repos/misyaguziya/VRCT/releases/latest" + !define SOFTWARE_DOWNLOAD_FILENAME "VRCT.zip" + !define SOFTWARE_JSON_FILENAME "response.json" + Var /GLOBAL i + Var /GLOBAL cmder_dl + Var /GLOBAL cmder_version + + DetailPrint "Fetching Latest Release from GitHub (${SOFTWARE_RELEASE_URL})" + inetc::get /SILENT "${SOFTWARE_RELEASE_URL}" "$TEMP\${SOFTWARE_JSON_FILENAME}" + + DetailPrint "Parsing JSON..." + nsJSON::Set /file "$TEMP\${SOFTWARE_JSON_FILENAME}" + + nsJSON::Get 'tag_name' /end + Pop $cmder_version + DetailPrint "Found version $cmder_version" + + nsJSON::Get /count 'assets' /end + Pop $R0 + + ${ForEach} $i 0 $R0 + 1 + nsJSON::Get 'assets' /index $i 'name' /end + Pop $R1 + StrCmp $R1 "${SOFTWARE_DOWNLOAD_FILENAME}" done + ${Next} + done: + + nsJSON::Get 'assets' /index $i 'browser_download_url' /end + Pop $cmder_dl + DetailPrint "Got URL : $cmder_dl" + + DetailPrint "Downloading ${SOFTWARE_DOWNLOAD_FILENAME}..." + inetc::get $cmder_dl "$TEMP\${SOFTWARE_DOWNLOAD_FILENAME}" + Pop $0 + StrCmp "$0" "OK" dlok + DetailPrint "Download Failed $0" + Abort + + dlok: + DetailPrint "Extracting ${SOFTWARE_DOWNLOAD_FILENAME}..." + nsisunz::UnzipToStack "$TEMP\${SOFTWARE_DOWNLOAD_FILENAME}" $INSTDIR ; Create uninstaller WriteUninstaller "$INSTDIR\uninstall.exe"