fix: update for mac-arm was not working
Massimo Melina committed
Jun 29, 2024 at 13:03 UTC
7773780b22c7b77b793e0d2b64ab45c200fd8621
3 files changed
+11
-8
package.json
+4
-4
@@ -27,10 +27,10 @@
27
"dist-bin": "npm run dist-modules && npm run dist-bin-win && npm run dist-bin-linux && npm run dist-bin-mac && npm run dist-bin-mac-arm",
28
"dist-modules": "cp package*.json central.json dist && cd dist && npm ci --omit=dev && cd .. && node prune_modules",
29
"dist-pre": "cd dist && rm -rf node_modules/@node-rs/crc32-*",
30
- "dist-bin-win": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-win32-x64-msvc && pkg . --public -C gzip -t node18-win-x64 && zip hfs-windows-$(jq -r .version ../package.json).zip hfs.exe -r plugins && cd ..",
31
- "dist-bin-mac-arm": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-darwin-arm64 && pkg . --public -C gzip -t node18-macos-arm64 && zip hfs-mac-arm-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
32
- "dist-bin-mac": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-darwin-x64 && pkg . --public -C gzip -t node18-macos-x64 && zip hfs-mac-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
33
- "dist-bin-linux": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-linux-x64-gnu && pkg . --public -C gzip -t node18-linux-x64 && zip hfs-linux-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
30
+ "dist-bin-win": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-win32-x64-msvc && pkg . --public -C gzip -t node18-win-x64 && zip hfs-windows-x64-$(jq -r .version ../package.json).zip hfs.exe -r plugins && cd ..",
31
+ "dist-bin-mac-arm": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-darwin-arm64 && pkg . --public -C gzip -t node18-macos-arm64 && zip hfs-mac-arm64-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
32
+ "dist-bin-mac": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-darwin-x64 && pkg . --public -C gzip -t node18-macos-x64 && zip hfs-mac-x64-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
33
+ "dist-bin-linux": "npm run dist-pre && cd dist && npm i -f --no-save --omit=dev @node-rs/crc32-linux-x64-gnu && pkg . --public -C gzip -t node18-linux-x64 && zip hfs-linux-x64-$(jq -r .version ../package.json).zip hfs -r plugins && cd ..",
34
"dist-win": "npm run dist-modules && npm run dist-bin-win",
35
"dist-mac-arm": "npm run dist-modules && npm run dist-bin-mac-arm",
36
"dist-mac": "npm run dist-modules && npm run dist-bin-mac",
src/const.ts
+1
-1
@@ -51,5 +51,5 @@ console.log('cwd', process.cwd())
51
if (APP_PATH !== process.cwd())
52
console.log('app', APP_PATH)
53
console.log('node', process.version)
54
-console.log('platform', process.platform)
54
+console.log('platform', process.platform, process.arch)
55
console.log('pid', process.pid)
src/update.ts
+6
-3
@@ -4,7 +4,7 @@ import { getRepoInfo } from './github'
4
import { argv, HFS_REPO, IS_BINARY, IS_WINDOWS, RUNNING_BETA } from './const'
5
import { dirname, join } from 'path'
6
import { spawn, spawnSync } from 'child_process'
7
-import { exists, httpStream, unzip } from './misc'
7
+import { exists, httpStream, prefix, unzip, xlate } from './misc'
8
import { createReadStream, renameSync, unlinkSync } from 'fs'
9
import { pluginsWatcher } from './plugins'
10
import { access, chmod, stat } from 'fs/promises'
@@ -84,10 +84,13 @@ export async function update(tagOrUrl: string='') {
84
}) as Release | undefined
85
if (!update)
86
throw "update not found"
87
- const assetSearch = ({ win32: 'windows', darwin: 'mac', linux: 'linux' } as any)[process.platform]
87
+ const plat = '-' + xlate(process.platform, { win32: 'windows', darwin: 'mac' })
88
+ const assetSearch = `${plat}-${process.arch}.zip`
89
+ const legacyAssetSearch = `${plat}${prefix('-', xlate(process.arch, { x64: '', arm64: 'arm' }))}.zip` // legacy pre-0.53.0-rc16
90
if (!assetSearch)
91
throw "this feature doesn't support your platform: " + process.platform
90
- const asset = update.assets.find((x: any) => x.name.endsWith('.zip') && x.name.includes(assetSearch))
92
+ const asset = update.assets.find((x: any) => x.name.endsWith(assetSearch))
93
+ || update.assets.find((x: any) => x.name.endsWith(legacyAssetSearch))
94
if (!asset)
95
throw "asset not found"
96
const url = asset.browser_download_url