UNPKG

go-cqhttp

Version:
40 lines (39 loc) 1.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.install = exports.download = void 0; const fs_1 = require("fs"); const path_1 = require("path"); const tar_1 = require("tar"); const _1 = require("."); const get_registry_1 = __importDefault(require("get-registry")); const axios_1 = __importDefault(require("axios")); const cwd = (0, path_1.resolve)(__dirname, '../bin'); async function download() { const registry = (await (0, get_registry_1.default)()).replace(/\/$/, ''); await fs_1.promises.mkdir(cwd, { recursive: true }); const name = `${process.platform}-${process.arch}`; const { version } = require('../package.json'); const url = `${registry}/@gocq/x-${name}/-/x-${name}-${version}.tgz`; const { data: readable } = await axios_1.default.get(url, { responseType: 'stream' }); const writable = (0, tar_1.extract)({ cwd, newer: true, strip: 1 }, ['package/' + _1.basename]); await new Promise((resolve, reject) => { writable.on('close', resolve); writable.on('error', reject); readable.on('error', reject); readable.pipe(writable); }); } exports.download = download; async function install() { if ((0, fs_1.existsSync)(_1.binary)) return; if (!(0, fs_1.existsSync)(_1.backup)) { await download(); } await fs_1.promises.mkdir((0, path_1.dirname)(_1.binary), { recursive: true }); await fs_1.promises.copyFile(_1.backup, _1.binary); } exports.install = install;