Make install less strict

This commit is contained in:
Luis Blanco 2023-01-06 20:00:38 +04:00
parent 4b31874a56
commit 105964614f
5 changed files with 46 additions and 48 deletions

View File

@ -41,7 +41,6 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
draft: true
tag_name: ${{ steps.package-version.outputs.version }} tag_name: ${{ steps.package-version.outputs.version }}
name: Release ${{ steps.package-version.outputs.version }} name: Release ${{ steps.package-version.outputs.version }}
body: Published at ${{ github.sha }} body: Published at ${{ github.sha }}

2
index.d.ts vendored
View File

@ -63,7 +63,7 @@ declare module "addon-tools-raub" {
* }, * },
* ``` * ```
*/ */
export const install: (folder: string) => void; export const install: (folder: string) => Promise<boolean>;
/** /**

64
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "addon-tools-raub", "name": "addon-tools-raub",
"version": "7.0.0", "version": "7.1.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "addon-tools-raub", "name": "addon-tools-raub",
"version": "7.0.0", "version": "7.1.0",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"eslint": "^8.31.0", "eslint": "^8.31.0",
@ -64,25 +64,25 @@
} }
}, },
"node_modules/@babel/core": { "node_modules/@babel/core": {
"version": "7.20.7", "version": "7.20.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
"integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.1.0", "@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6", "@babel/code-frame": "^7.18.6",
"@babel/generator": "^7.20.7", "@babel/generator": "^7.20.7",
"@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-module-transforms": "^7.20.7", "@babel/helper-module-transforms": "^7.20.11",
"@babel/helpers": "^7.20.7", "@babel/helpers": "^7.20.7",
"@babel/parser": "^7.20.7", "@babel/parser": "^7.20.7",
"@babel/template": "^7.20.7", "@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.7", "@babel/traverse": "^7.20.12",
"@babel/types": "^7.20.7", "@babel/types": "^7.20.7",
"convert-source-map": "^1.7.0", "convert-source-map": "^1.7.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.2", "gensync": "^1.0.0-beta.2",
"json5": "^2.2.1", "json5": "^2.2.2",
"semver": "^6.3.0" "semver": "^6.3.0"
}, },
"engines": { "engines": {
@ -592,9 +592,9 @@
} }
}, },
"node_modules/@babel/traverse": { "node_modules/@babel/traverse": {
"version": "7.20.10", "version": "7.20.12",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz",
"integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.18.6", "@babel/code-frame": "^7.18.6",
@ -1294,9 +1294,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/yargs": { "node_modules/@types/yargs": {
"version": "17.0.18", "version": "17.0.19",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.19.tgz",
"integrity": "sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw==", "integrity": "sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/yargs-parser": "*" "@types/yargs-parser": "*"
@ -1727,9 +1727,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001441", "version": "1.0.30001442",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz",
"integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -4694,25 +4694,25 @@
"dev": true "dev": true
}, },
"@babel/core": { "@babel/core": {
"version": "7.20.7", "version": "7.20.12",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
"integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@ampproject/remapping": "^2.1.0", "@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6", "@babel/code-frame": "^7.18.6",
"@babel/generator": "^7.20.7", "@babel/generator": "^7.20.7",
"@babel/helper-compilation-targets": "^7.20.7", "@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-module-transforms": "^7.20.7", "@babel/helper-module-transforms": "^7.20.11",
"@babel/helpers": "^7.20.7", "@babel/helpers": "^7.20.7",
"@babel/parser": "^7.20.7", "@babel/parser": "^7.20.7",
"@babel/template": "^7.20.7", "@babel/template": "^7.20.7",
"@babel/traverse": "^7.20.7", "@babel/traverse": "^7.20.12",
"@babel/types": "^7.20.7", "@babel/types": "^7.20.7",
"convert-source-map": "^1.7.0", "convert-source-map": "^1.7.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.2", "gensync": "^1.0.0-beta.2",
"json5": "^2.2.1", "json5": "^2.2.2",
"semver": "^6.3.0" "semver": "^6.3.0"
}, },
"dependencies": { "dependencies": {
@ -5091,9 +5091,9 @@
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.20.10", "version": "7.20.12",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz",
"integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.18.6", "@babel/code-frame": "^7.18.6",
@ -5669,9 +5669,9 @@
"dev": true "dev": true
}, },
"@types/yargs": { "@types/yargs": {
"version": "17.0.18", "version": "17.0.19",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.18.tgz", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.19.tgz",
"integrity": "sha512-eIJR1UER6ur3EpKM3d+2Pgd+ET+k6Kn9B4ZItX0oPjjVI5PrfaRjKyLT5UYendDpLuoiJMNJvovLQbEXqhsPaw==", "integrity": "sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/yargs-parser": "*" "@types/yargs-parser": "*"
@ -5972,9 +5972,9 @@
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001441", "version": "1.0.30001442",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz",
"integrity": "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==", "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==",
"dev": true "dev": true
}, },
"chalk": { "chalk": {

View File

@ -1,7 +1,7 @@
{ {
"author": "Luis Blanco <luisblanco1337@gmail.com>", "author": "Luis Blanco <luisblanco1337@gmail.com>",
"name": "addon-tools-raub", "name": "addon-tools-raub",
"version": "7.0.0", "version": "7.1.0",
"description": "Helpers for Node.js addons and dependency packages", "description": "Helpers for Node.js addons and dependency packages",
"license": "MIT", "license": "MIT",
"main": "index.js", "main": "index.js",

View File

@ -12,12 +12,6 @@ const { mkdir, rmdir, rm } = require('./files');
const protocols = { http, https }; const protocols = { http, https };
const onError = (msg) => {
console.error(msg);
process.exit(-1);
};
const installRecursive = async (url, count = 1) => { const installRecursive = async (url, count = 1) => {
try { try {
@ -34,13 +28,13 @@ const installRecursive = async (url, count = 1) => {
if (count < 5) { if (count < 5) {
return installRecursive(response.headers.location, count + 1); return installRecursive(response.headers.location, count + 1);
} }
console.log(url); console.warn(url);
throw new Error('Error: Too many redirects.'); throw new Error('Error: Too many redirects.');
} }
// Handle bad status // Handle bad status
if (response.statusCode !== 200) { if (response.statusCode !== 200) {
console.log(url); console.warn(url);
throw new Error(`Response status was ${response.statusCode}`); throw new Error(`Response status was ${response.statusCode}`);
} }
@ -56,18 +50,23 @@ const installRecursive = async (url, count = 1) => {
response.pipe(packWriter); response.pipe(packWriter);
}); });
await exec(`tar -xzf ${packPath} --directory ${getBin()}`); const { stderr } = await exec(`tar -xzf ${packPath} --directory ${getBin()}`);
if (stderr) {
console.warn(stderr);
}
await rm(packPath); await rm(packPath);
} catch (ex) { return true;
onError(ex.message); } catch (error) {
console.error(error.message);
return false;
} }
}; };
const install = (folder) => { const install = async (folder) => {
const url = `${folder}/${getPlatform()}.gz`; const url = `${folder}/${getPlatform()}.gz`;
installRecursive(url).then(); return installRecursive(url);
}; };
module.exports = { install }; module.exports = { install };