Files
core/scripts/download-latest-asset.js
2022-05-21 17:15:40 +08:00

42 lines
1.0 KiB
JavaScript

#!/usr/bin/env zx
/* eslint-disable */
// @ts-check
function getOsBuildAssetName() {
const platform = process.platform
const kernelMap = {
darwin: 'macos',
linux: 'ubuntu',
win32: 'windows',
}
const os = kernelMap[platform]
if (!os) {
throw new Error('No current platform build. Please build manually')
}
return `release-${os}-latest.zip`
}
const { appendFileSync } = require('fs')
const PKG = require('../package.json')
async function main() {
const res = await fetch(
`https://api.github.com/repos/${PKG.repository.directory}/releases/latest`,
)
const data = await res.json()
const downloadUrl = data.assets.find((asset) =>
[getOsBuildAssetName(), 'release.zip'].includes(asset.name),
)?.browser_download_url
if (!downloadUrl) {
throw new Error('no download url found')
}
const buffer = await fetch('https://cc.shizuri.net/' + downloadUrl).then(
(res) => res.arrayBuffer(),
)
appendFileSync(`release-downloaded.zip`, Buffer.from(buffer))
await $`unzip release-downloaded.zip -d mx-server`
}
main()