mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Move downloading binaries to new package (#7033)
* Move downloading binaries to new package Signed-off-by: Sebastian Malton <sebastian@malton.name> * Remove old location from files Signed-off-by: Sebastian Malton <sebastian@malton.name> * Swtich @k8slens/download-binaries to provide a binary Signed-off-by: Sebastian Malton <sebastian@malton.name> --------- Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
9eec04ab87
commit
4e4934ba1a
@ -37,7 +37,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"build/download_binaries.ts",
|
|
||||||
"build/*.plist",
|
"build/*.plist",
|
||||||
"build/installer.nsh",
|
"build/installer.nsh",
|
||||||
"build/notarize.js",
|
"build/notarize.js",
|
||||||
@ -214,7 +213,6 @@
|
|||||||
"@types/byline": "^4.2.33",
|
"@types/byline": "^4.2.33",
|
||||||
"@types/chart.js": "^2.9.36",
|
"@types/chart.js": "^2.9.36",
|
||||||
"@types/circular-dependency-plugin": "5.0.5",
|
"@types/circular-dependency-plugin": "5.0.5",
|
||||||
"@types/cli-progress": "^3.11.0",
|
|
||||||
"@types/color": "^3.0.3",
|
"@types/color": "^3.0.3",
|
||||||
"@types/command-line-args": "^5.2.0",
|
"@types/command-line-args": "^5.2.0",
|
||||||
"@types/crypto-js": "^3.1.47",
|
"@types/crypto-js": "^3.1.47",
|
||||||
@ -222,7 +220,6 @@
|
|||||||
"@types/electron-devtools-installer": "^2.2.1",
|
"@types/electron-devtools-installer": "^2.2.1",
|
||||||
"@types/fs-extra": "^9.0.13",
|
"@types/fs-extra": "^9.0.13",
|
||||||
"@types/glob-to-regexp": "^0.4.1",
|
"@types/glob-to-regexp": "^0.4.1",
|
||||||
"@types/gunzip-maybe": "^1.4.0",
|
|
||||||
"@types/hapi__call": "^9.0.0",
|
"@types/hapi__call": "^9.0.0",
|
||||||
"@types/hapi__subtext": "^7.0.0",
|
"@types/hapi__subtext": "^7.0.0",
|
||||||
"@types/html-webpack-plugin": "^3.2.6",
|
"@types/html-webpack-plugin": "^3.2.6",
|
||||||
@ -251,7 +248,6 @@
|
|||||||
"@types/semver": "^7.3.13",
|
"@types/semver": "^7.3.13",
|
||||||
"@types/sharp": "^0.31.1",
|
"@types/sharp": "^0.31.1",
|
||||||
"@types/tar": "^6.1.3",
|
"@types/tar": "^6.1.3",
|
||||||
"@types/tar-stream": "^2.2.2",
|
|
||||||
"@types/tcp-port-used": "^1.0.1",
|
"@types/tcp-port-used": "^1.0.1",
|
||||||
"@types/tempy": "^0.3.0",
|
"@types/tempy": "^0.3.0",
|
||||||
"@types/triple-beam": "^1.3.2",
|
"@types/triple-beam": "^1.3.2",
|
||||||
@ -268,7 +264,6 @@
|
|||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"chart.js": "^2.9.4",
|
"chart.js": "^2.9.4",
|
||||||
"circular-dependency-plugin": "^5.2.2",
|
"circular-dependency-plugin": "^5.2.2",
|
||||||
"cli-progress": "^3.11.2",
|
|
||||||
"color": "^3.2.1",
|
"color": "^3.2.1",
|
||||||
"command-line-args": "^5.2.1",
|
"command-line-args": "^5.2.1",
|
||||||
"concurrently": "^7.6.0",
|
"concurrently": "^7.6.0",
|
||||||
@ -288,7 +283,6 @@
|
|||||||
"eslint-plugin-react-hooks": "^4.6.0",
|
"eslint-plugin-react-hooks": "^4.6.0",
|
||||||
"eslint-plugin-unused-imports": "^2.0.0",
|
"eslint-plugin-unused-imports": "^2.0.0",
|
||||||
"fork-ts-checker-webpack-plugin": "^6.5.2",
|
"fork-ts-checker-webpack-plugin": "^6.5.2",
|
||||||
"gunzip-maybe": "^1.4.2",
|
|
||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"identity-obj-proxy": "^3.0.0",
|
"identity-obj-proxy": "^3.0.0",
|
||||||
"ignore-loader": "^0.1.2",
|
"ignore-loader": "^0.1.2",
|
||||||
@ -325,7 +319,6 @@
|
|||||||
"sharp": "^0.31.3",
|
"sharp": "^0.31.3",
|
||||||
"style-loader": "^3.3.1",
|
"style-loader": "^3.3.1",
|
||||||
"tailwindcss": "^3.2.4",
|
"tailwindcss": "^3.2.4",
|
||||||
"tar-stream": "^2.2.0",
|
|
||||||
"ts-loader": "^9.4.2",
|
"ts-loader": "^9.4.2",
|
||||||
"ts-node": "^10.9.1",
|
"ts-node": "^10.9.1",
|
||||||
"type-fest": "^2.14.0",
|
"type-fest": "^2.14.0",
|
||||||
|
|||||||
@ -1284,13 +1284,6 @@
|
|||||||
"@jridgewell/resolve-uri" "^3.0.3"
|
"@jridgewell/resolve-uri" "^3.0.3"
|
||||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||||
|
|
||||||
"@k8slens/node-fetch@^6.4.0-beta.6":
|
|
||||||
version "6.4.0-beta.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/@k8slens/node-fetch/-/node-fetch-6.4.0-beta.6.tgz#e7779f4adc9c85f485d2109d734cb7b4ab9130a1"
|
|
||||||
integrity sha512-6ryPxx+ENB4cmdqlc3WMLX8qDNS6Yon3q5ZtGIjnncUaRRQKRirzvSnQ62VruDi8ZSTssRlRtfKZ+WgeRnzH6g==
|
|
||||||
dependencies:
|
|
||||||
node-fetch "^3.3.0"
|
|
||||||
|
|
||||||
"@kubernetes/client-node@^0.18.1":
|
"@kubernetes/client-node@^0.18.1":
|
||||||
version "0.18.1"
|
version "0.18.1"
|
||||||
resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.18.1.tgz#58d864c8f584efd0f8670f6c46bb8e9d5abd58f6"
|
resolved "https://registry.yarnpkg.com/@kubernetes/client-node/-/client-node-0.18.1.tgz#58d864c8f584efd0f8670f6c46bb8e9d5abd58f6"
|
||||||
@ -2125,13 +2118,6 @@
|
|||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
source-map "^0.6.0"
|
source-map "^0.6.0"
|
||||||
|
|
||||||
"@types/cli-progress@^3.11.0":
|
|
||||||
version "3.11.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.0.tgz#ec79df99b26757c3d1c7170af8422e0fc95eef7e"
|
|
||||||
integrity sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/color-convert@*":
|
"@types/color-convert@*":
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.0.tgz#8f5ee6b9e863dcbee5703f5a517ffb13d3ea4e22"
|
resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.0.tgz#8f5ee6b9e863dcbee5703f5a517ffb13d3ea4e22"
|
||||||
@ -2269,13 +2255,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/gunzip-maybe@^1.4.0":
|
|
||||||
version "1.4.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/gunzip-maybe/-/gunzip-maybe-1.4.0.tgz#9410fd15ff68eca8907b7b9198e63e2a7c14d511"
|
|
||||||
integrity sha512-dFP9GrYAR9KhsjTkWJ8q8Gsfql75YIKcg9DuQOj/IrlPzR7W+1zX+cclw1McV82UXAQ+Lpufvgk3e9bC8+HzgA==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/hapi__call@^9.0.0":
|
"@types/hapi__call@^9.0.0":
|
||||||
version "9.0.0"
|
version "9.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/hapi__call/-/hapi__call-9.0.0.tgz#17e287ce9333c59716b194720eea9f12e63a72f2"
|
resolved "https://registry.yarnpkg.com/@types/hapi__call/-/hapi__call-9.0.0.tgz#17e287ce9333c59716b194720eea9f12e63a72f2"
|
||||||
@ -2700,13 +2679,6 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
|
resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
|
||||||
integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
|
integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
|
||||||
|
|
||||||
"@types/tar-stream@^2.2.2":
|
|
||||||
version "2.2.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/tar-stream/-/tar-stream-2.2.2.tgz#be9d0be9404166e4b114151f93e8442e6ab6fb1d"
|
|
||||||
integrity sha512-1AX+Yt3icFuU6kxwmPakaiGrJUwG44MpuiqPg4dSolRFk6jmvs4b3IbUol9wKDLIgU76gevn3EwE8y/DkSJCZQ==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/tar@^6.1.3":
|
"@types/tar@^6.1.3":
|
||||||
version "6.1.3"
|
version "6.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/tar/-/tar-6.1.3.tgz#46a2ce7617950c4852dfd7e9cd41aa8161b9d750"
|
resolved "https://registry.yarnpkg.com/@types/tar/-/tar-6.1.3.tgz#46a2ce7617950c4852dfd7e9cd41aa8161b9d750"
|
||||||
@ -3849,13 +3821,6 @@ browser-process-hrtime@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
|
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
|
||||||
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
|
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
|
||||||
|
|
||||||
browserify-zlib@^0.1.4:
|
|
||||||
version "0.1.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d"
|
|
||||||
integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=
|
|
||||||
dependencies:
|
|
||||||
pako "~0.2.0"
|
|
||||||
|
|
||||||
browserslist@^4.14.5, browserslist@^4.20.2:
|
browserslist@^4.14.5, browserslist@^4.20.2:
|
||||||
version "4.20.3"
|
version "4.20.3"
|
||||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
|
||||||
@ -4284,13 +4249,6 @@ cli-cursor@^3.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
restore-cursor "^3.1.0"
|
restore-cursor "^3.1.0"
|
||||||
|
|
||||||
cli-progress@^3.11.2:
|
|
||||||
version "3.11.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.11.2.tgz#f8c89bd157e74f3f2c43bcfb3505670b4d48fc77"
|
|
||||||
integrity sha512-lCPoS6ncgX4+rJu5bS3F/iCz17kZ9MPZ6dpuTtI0KXKABkhyXIdYB3Inby1OpaGti3YlI3EeEkM9AuWpelJrVA==
|
|
||||||
dependencies:
|
|
||||||
string-width "^4.2.3"
|
|
||||||
|
|
||||||
cli-table3@^0.6.2:
|
cli-table3@^0.6.2:
|
||||||
version "0.6.2"
|
version "0.6.2"
|
||||||
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a"
|
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.2.tgz#aaf5df9d8b5bf12634dc8b3040806a0c07120d2a"
|
||||||
@ -4872,11 +4830,6 @@ dashdash@^1.12.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
assert-plus "^1.0.0"
|
assert-plus "^1.0.0"
|
||||||
|
|
||||||
data-uri-to-buffer@^4.0.0:
|
|
||||||
version "4.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e"
|
|
||||||
integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
|
|
||||||
|
|
||||||
data-urls@^2.0.0:
|
data-urls@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
|
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
|
||||||
@ -5388,16 +5341,6 @@ duplexer3@^0.1.4:
|
|||||||
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
|
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
|
||||||
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
|
integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
|
||||||
|
|
||||||
duplexify@^3.5.0, duplexify@^3.6.0:
|
|
||||||
version "3.7.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
|
|
||||||
integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
|
|
||||||
dependencies:
|
|
||||||
end-of-stream "^1.0.0"
|
|
||||||
inherits "^2.0.1"
|
|
||||||
readable-stream "^2.0.0"
|
|
||||||
stream-shift "^1.0.0"
|
|
||||||
|
|
||||||
ecc-jsbn@~0.1.1:
|
ecc-jsbn@~0.1.1:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
|
||||||
@ -6302,14 +6245,6 @@ fecha@^4.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
|
resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
|
||||||
integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
|
integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
|
||||||
|
|
||||||
fetch-blob@^3.1.2, fetch-blob@^3.1.4:
|
|
||||||
version "3.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
|
|
||||||
integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
|
|
||||||
dependencies:
|
|
||||||
node-domexception "^1.0.0"
|
|
||||||
web-streams-polyfill "^3.0.3"
|
|
||||||
|
|
||||||
figures@^3.0.0:
|
figures@^3.0.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
|
resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
|
||||||
@ -6577,13 +6512,6 @@ form-data@~2.3.2:
|
|||||||
combined-stream "^1.0.6"
|
combined-stream "^1.0.6"
|
||||||
mime-types "^2.1.12"
|
mime-types "^2.1.12"
|
||||||
|
|
||||||
formdata-polyfill@^4.0.10:
|
|
||||||
version "4.0.10"
|
|
||||||
resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423"
|
|
||||||
integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
|
|
||||||
dependencies:
|
|
||||||
fetch-blob "^3.1.2"
|
|
||||||
|
|
||||||
forwarded@0.2.0:
|
forwarded@0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
||||||
@ -7003,18 +6931,6 @@ gulp-header@^1.7.1:
|
|||||||
lodash.template "^4.4.0"
|
lodash.template "^4.4.0"
|
||||||
through2 "^2.0.0"
|
through2 "^2.0.0"
|
||||||
|
|
||||||
gunzip-maybe@^1.4.2:
|
|
||||||
version "1.4.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac"
|
|
||||||
integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==
|
|
||||||
dependencies:
|
|
||||||
browserify-zlib "^0.1.4"
|
|
||||||
is-deflate "^1.0.0"
|
|
||||||
is-gzip "^1.0.0"
|
|
||||||
peek-stream "^1.1.0"
|
|
||||||
pumpify "^1.3.3"
|
|
||||||
through2 "^2.0.3"
|
|
||||||
|
|
||||||
handle-thing@^2.0.0:
|
handle-thing@^2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
|
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
|
||||||
@ -7660,11 +7576,6 @@ is-date-object@^1.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
has-tostringtag "^1.0.0"
|
has-tostringtag "^1.0.0"
|
||||||
|
|
||||||
is-deflate@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14"
|
|
||||||
integrity sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ=
|
|
||||||
|
|
||||||
is-docker@^2.0.0, is-docker@^2.1.1:
|
is-docker@^2.0.0, is-docker@^2.1.1:
|
||||||
version "2.2.1"
|
version "2.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
|
||||||
@ -7714,11 +7625,6 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-extglob "^2.1.1"
|
is-extglob "^2.1.1"
|
||||||
|
|
||||||
is-gzip@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83"
|
|
||||||
integrity sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=
|
|
||||||
|
|
||||||
is-in-browser@^1.0.2, is-in-browser@^1.1.3:
|
is-in-browser@^1.0.2, is-in-browser@^1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
|
resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
|
||||||
@ -9746,20 +9652,6 @@ node-addon-api@^5.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
|
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.0.0.tgz#7d7e6f9ef89043befdb20c1989c905ebde18c501"
|
||||||
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
|
integrity sha512-CvkDw2OEnme7ybCykJpVcKH+uAOLV2qLqiyla128dN9TkEWfrYmxG6C2boDe5KcNQqZF3orkqzGgOMvZ/JNekA==
|
||||||
|
|
||||||
node-domexception@^1.0.0:
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5"
|
|
||||||
integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
|
|
||||||
|
|
||||||
node-fetch@^3.3.0:
|
|
||||||
version "3.3.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4"
|
|
||||||
integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==
|
|
||||||
dependencies:
|
|
||||||
data-uri-to-buffer "^4.0.0"
|
|
||||||
fetch-blob "^3.1.4"
|
|
||||||
formdata-polyfill "^4.0.10"
|
|
||||||
|
|
||||||
node-forge@^1, node-forge@^1.2.1:
|
node-forge@^1, node-forge@^1.2.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
|
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
|
||||||
@ -10450,11 +10342,6 @@ pacote@^13.0.3, pacote@^13.6.1, pacote@^13.6.2:
|
|||||||
ssri "^9.0.0"
|
ssri "^9.0.0"
|
||||||
tar "^6.1.11"
|
tar "^6.1.11"
|
||||||
|
|
||||||
pako@~0.2.0:
|
|
||||||
version "0.2.9"
|
|
||||||
resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
|
|
||||||
integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=
|
|
||||||
|
|
||||||
pako@~1.0.2:
|
pako@~1.0.2:
|
||||||
version "1.0.11"
|
version "1.0.11"
|
||||||
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
|
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
|
||||||
@ -10569,15 +10456,6 @@ path-type@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||||
|
|
||||||
peek-stream@^1.1.0:
|
|
||||||
version "1.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67"
|
|
||||||
integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==
|
|
||||||
dependencies:
|
|
||||||
buffer-from "^1.0.0"
|
|
||||||
duplexify "^3.5.0"
|
|
||||||
through2 "^2.0.3"
|
|
||||||
|
|
||||||
pend@~1.2.0:
|
pend@~1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
||||||
@ -10984,14 +10862,6 @@ pstree.remy@^1.1.8:
|
|||||||
resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
|
resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
|
||||||
integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
|
integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
|
||||||
|
|
||||||
pump@^2.0.0:
|
|
||||||
version "2.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
|
|
||||||
integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
|
|
||||||
dependencies:
|
|
||||||
end-of-stream "^1.1.0"
|
|
||||||
once "^1.3.1"
|
|
||||||
|
|
||||||
pump@^3.0.0:
|
pump@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
||||||
@ -11000,15 +10870,6 @@ pump@^3.0.0:
|
|||||||
end-of-stream "^1.1.0"
|
end-of-stream "^1.1.0"
|
||||||
once "^1.3.1"
|
once "^1.3.1"
|
||||||
|
|
||||||
pumpify@^1.3.3:
|
|
||||||
version "1.5.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
|
|
||||||
integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
|
|
||||||
dependencies:
|
|
||||||
duplexify "^3.6.0"
|
|
||||||
inherits "^2.0.3"
|
|
||||||
pump "^2.0.0"
|
|
||||||
|
|
||||||
punycode@^2.1.0, punycode@^2.1.1:
|
punycode@^2.1.0, punycode@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||||
@ -12304,11 +12165,6 @@ stream-buffers@^3.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521"
|
resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521"
|
||||||
integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==
|
integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==
|
||||||
|
|
||||||
stream-shift@^1.0.0:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
|
|
||||||
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
|
|
||||||
|
|
||||||
strict-uri-encode@^1.0.0:
|
strict-uri-encode@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||||
@ -12623,7 +12479,7 @@ tar-stream@^1.5.2:
|
|||||||
to-buffer "^1.1.1"
|
to-buffer "^1.1.1"
|
||||||
xtend "^4.0.0"
|
xtend "^4.0.0"
|
||||||
|
|
||||||
tar-stream@^2.1.4, tar-stream@^2.2.0:
|
tar-stream@^2.1.4:
|
||||||
version "2.2.0"
|
version "2.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
|
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
|
||||||
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
|
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
|
||||||
@ -12736,7 +12592,7 @@ text-table@^0.2.0, text-table@~0.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||||
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
||||||
|
|
||||||
through2@^2.0.0, through2@^2.0.3:
|
through2@^2.0.0:
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
|
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
|
||||||
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
|
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
|
||||||
@ -13432,11 +13288,6 @@ wcwidth@^1.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
defaults "^1.0.3"
|
defaults "^1.0.3"
|
||||||
|
|
||||||
web-streams-polyfill@^3.0.3:
|
|
||||||
version "3.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6"
|
|
||||||
integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==
|
|
||||||
|
|
||||||
webidl-conversions@^5.0.0:
|
webidl-conversions@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
|
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
|
||||||
|
|||||||
2
packages/download-binaries/.gitignore
vendored
Normal file
2
packages/download-binaries/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
dist/
|
||||||
|
node_modules/
|
||||||
32
packages/download-binaries/package.json
Normal file
32
packages/download-binaries/package.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"name": "@k8slens/download-binaries",
|
||||||
|
"version": "6.4.0-beta.6",
|
||||||
|
"description": "CLI for downloading configured versions of the bundled versions of CLIs",
|
||||||
|
"main": "dist/index.mjs",
|
||||||
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"clean": "rm -rf dist/",
|
||||||
|
"build": "swc ./src/index.ts -o ./dist/index.mjs"
|
||||||
|
},
|
||||||
|
"bin": "./dist/index.mjs",
|
||||||
|
"files": [
|
||||||
|
"dist"
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"arg": "^5.0.2",
|
||||||
|
"cli-progress": "^3.11.2",
|
||||||
|
"gunzip-maybe": "^1.4.2",
|
||||||
|
"node-fetch": "^3.3.0",
|
||||||
|
"tar-stream": "^3.0.0",
|
||||||
|
"zod": "^3.20.2"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@swc/cli": "^0.1.59",
|
||||||
|
"@swc/core": "^1.3.28",
|
||||||
|
"@types/cli-progress": "^3.11.0",
|
||||||
|
"@types/gunzip-maybe": "^1.4.0",
|
||||||
|
"@types/node": "^16.18.11",
|
||||||
|
"@types/semver": "^7.3.13",
|
||||||
|
"@types/tar-stream": "^2.2.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,26 +1,44 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
/**
|
/**
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import packageInfo from "../package.json";
|
import { FileHandle, readFile } from "fs/promises";
|
||||||
import type { FileHandle } from "fs/promises";
|
import type { WriteStream } from "fs";
|
||||||
import { open } from "fs/promises";
|
import { constants } from "fs";
|
||||||
import type { WriteStream } from "fs-extra";
|
import { open, mkdir, unlink } from "fs/promises";
|
||||||
import { constants, ensureDir, unlink } from "fs-extra";
|
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import type * as FetchModule from "@k8slens/node-fetch";
|
|
||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
import { pipeline as _pipeline, Transform, Writable } from "stream";
|
import { pipeline as _pipeline, Transform, Writable } from "stream";
|
||||||
import type { SingleBar } from "cli-progress";
|
import type { SingleBar } from "cli-progress";
|
||||||
import { MultiBar } from "cli-progress";
|
import { MultiBar } from "cli-progress";
|
||||||
import { extract } from "tar-stream";
|
import { extract } from "tar-stream";
|
||||||
import gunzip from "gunzip-maybe";
|
import gunzip from "gunzip-maybe";
|
||||||
import { isErrnoException, setTimeoutFor } from "../src/common/utils";
|
import fetch from "node-fetch"
|
||||||
import AbortController from "abort-controller";
|
import z from "zod";
|
||||||
|
import arg from "arg";
|
||||||
|
|
||||||
type Response = FetchModule.Response;
|
const options = arg({
|
||||||
type RequestInfo = FetchModule.RequestInfo;
|
"--package": String,
|
||||||
type RequestInit = FetchModule.RequestInit;
|
"--base-dir": String,
|
||||||
|
});
|
||||||
|
|
||||||
|
const pathToPackage = options["--package"];
|
||||||
|
const pathToBaseDir = options["--base-dir"];
|
||||||
|
|
||||||
|
if (typeof pathToPackage !== "string") {
|
||||||
|
throw new Error("--package is required");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof pathToBaseDir !== "string") {
|
||||||
|
throw new Error("--base-dir is required");
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTimeoutFor(controller: AbortController, timeout: number): void {
|
||||||
|
const handle = setTimeout(() => controller.abort(), timeout);
|
||||||
|
|
||||||
|
controller.signal.addEventListener("abort", () => clearTimeout(handle));
|
||||||
|
}
|
||||||
|
|
||||||
const pipeline = promisify(_pipeline);
|
const pipeline = promisify(_pipeline);
|
||||||
|
|
||||||
@ -41,10 +59,6 @@ interface BinaryDownloaderArgs {
|
|||||||
readonly baseDir: string;
|
readonly baseDir: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface BinaryDownloaderDependencies {
|
|
||||||
fetch: (url: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class BinaryDownloader {
|
abstract class BinaryDownloader {
|
||||||
protected abstract readonly url: string;
|
protected abstract readonly url: string;
|
||||||
protected readonly bar: SingleBar;
|
protected readonly bar: SingleBar;
|
||||||
@ -54,7 +68,7 @@ abstract class BinaryDownloader {
|
|||||||
return [file];
|
return [file];
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(protected readonly dependencies: BinaryDownloaderDependencies, public readonly args: BinaryDownloaderArgs, multiBar: MultiBar) {
|
constructor(public readonly args: BinaryDownloaderArgs, multiBar: MultiBar) {
|
||||||
this.bar = multiBar.create(1, 0, args);
|
this.bar = multiBar.create(1, 0, args);
|
||||||
this.target = path.join(args.baseDir, args.platform, args.fileArch, args.binaryName);
|
this.target = path.join(args.baseDir, args.platform, args.fileArch, args.binaryName);
|
||||||
}
|
}
|
||||||
@ -68,7 +82,7 @@ abstract class BinaryDownloader {
|
|||||||
|
|
||||||
setTimeoutFor(controller, 15 * 60 * 1000);
|
setTimeoutFor(controller, 15 * 60 * 1000);
|
||||||
|
|
||||||
const stream = await this.dependencies.fetch(this.url, {
|
const stream = await fetch(this.url, {
|
||||||
signal: controller.signal,
|
signal: controller.signal,
|
||||||
});
|
});
|
||||||
const total = Number(stream.headers.get("content-length"));
|
const total = Number(stream.headers.get("content-length"));
|
||||||
@ -81,7 +95,10 @@ abstract class BinaryDownloader {
|
|||||||
|
|
||||||
bar.setTotal(total);
|
bar.setTotal(total);
|
||||||
|
|
||||||
await ensureDir(path.dirname(this.target), 0o755);
|
await mkdir(path.dirname(this.target), {
|
||||||
|
mode: 0o755,
|
||||||
|
recursive: true,
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
/**
|
/**
|
||||||
@ -116,7 +133,7 @@ abstract class BinaryDownloader {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
await fileHandle?.close();
|
await fileHandle?.close();
|
||||||
|
|
||||||
if (isErrnoException(error) && error.code === "EEXIST") {
|
if ((error as any)?.code === "EEXIST") {
|
||||||
bar.increment(total); // mark as finished
|
bar.increment(total); // mark as finished
|
||||||
controller.abort(); // stop trying to download
|
controller.abort(); // stop trying to download
|
||||||
} else {
|
} else {
|
||||||
@ -130,10 +147,10 @@ abstract class BinaryDownloader {
|
|||||||
class LensK8sProxyDownloader extends BinaryDownloader {
|
class LensK8sProxyDownloader extends BinaryDownloader {
|
||||||
protected readonly url: string;
|
protected readonly url: string;
|
||||||
|
|
||||||
constructor(deps: BinaryDownloaderDependencies, args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
constructor(args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
||||||
const binaryName = getBinaryName("lens-k8s-proxy", { forPlatform: args.platform });
|
const binaryName = getBinaryName("lens-k8s-proxy", { forPlatform: args.platform });
|
||||||
|
|
||||||
super(deps, { ...args, binaryName }, bar);
|
super({ ...args, binaryName }, bar);
|
||||||
this.url = `https://github.com/lensapp/lens-k8s-proxy/releases/download/v${args.version}/lens-k8s-proxy-${args.platform}-${args.downloadArch}`;
|
this.url = `https://github.com/lensapp/lens-k8s-proxy/releases/download/v${args.version}/lens-k8s-proxy-${args.platform}-${args.downloadArch}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,10 +158,10 @@ class LensK8sProxyDownloader extends BinaryDownloader {
|
|||||||
class KubectlDownloader extends BinaryDownloader {
|
class KubectlDownloader extends BinaryDownloader {
|
||||||
protected readonly url: string;
|
protected readonly url: string;
|
||||||
|
|
||||||
constructor(deps: BinaryDownloaderDependencies, args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
constructor(args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
||||||
const binaryName = getBinaryName("kubectl", { forPlatform: args.platform });
|
const binaryName = getBinaryName("kubectl", { forPlatform: args.platform });
|
||||||
|
|
||||||
super(deps, { ...args, binaryName }, bar);
|
super({ ...args, binaryName }, bar);
|
||||||
this.url = `https://storage.googleapis.com/kubernetes-release/release/v${args.version}/bin/${args.platform}/${args.downloadArch}/${binaryName}`;
|
this.url = `https://storage.googleapis.com/kubernetes-release/release/v${args.version}/bin/${args.platform}/${args.downloadArch}/${binaryName}`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -152,10 +169,10 @@ class KubectlDownloader extends BinaryDownloader {
|
|||||||
class HelmDownloader extends BinaryDownloader {
|
class HelmDownloader extends BinaryDownloader {
|
||||||
protected readonly url: string;
|
protected readonly url: string;
|
||||||
|
|
||||||
constructor(deps: BinaryDownloaderDependencies, args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
constructor(args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
||||||
const binaryName = getBinaryName("helm", { forPlatform: args.platform });
|
const binaryName = getBinaryName("helm", { forPlatform: args.platform });
|
||||||
|
|
||||||
super(deps, { ...args, binaryName }, bar);
|
super({ ...args, binaryName }, bar);
|
||||||
this.url = `https://get.helm.sh/helm-v${args.version}-${args.platform}-${args.downloadArch}.tar.gz`;
|
this.url = `https://get.helm.sh/helm-v${args.version}-${args.platform}-${args.downloadArch}.tar.gz`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,99 +199,100 @@ class HelmDownloader extends BinaryDownloader {
|
|||||||
|
|
||||||
type SupportedPlatform = "darwin" | "linux" | "windows";
|
type SupportedPlatform = "darwin" | "linux" | "windows";
|
||||||
|
|
||||||
const importFetchModule = new Function('return import("node-fetch")') as () => Promise<typeof FetchModule>;
|
const PackageInfo = z.object({
|
||||||
|
config: z.object({
|
||||||
|
k8sProxyVersion: z.string().min(1),
|
||||||
|
bundledKubectlVersion: z.string().min(1),
|
||||||
|
bundledHelmVersion: z.string().min(1),
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
async function main() {
|
const packageInfoRaw = await readFile(pathToPackage, "utf-8");
|
||||||
const deps: BinaryDownloaderDependencies = {
|
const packageInfo = PackageInfo.parse(JSON.parse(packageInfoRaw));
|
||||||
fetch: (await importFetchModule()).default,
|
|
||||||
};
|
const normalizedPlatform = (() => {
|
||||||
const normalizedPlatform = (() => {
|
switch (process.platform) {
|
||||||
switch (process.platform) {
|
case "darwin":
|
||||||
case "darwin":
|
return "darwin";
|
||||||
return "darwin";
|
case "linux":
|
||||||
case "linux":
|
return "linux";
|
||||||
return "linux";
|
case "win32":
|
||||||
case "win32":
|
return "windows";
|
||||||
return "windows";
|
default:
|
||||||
default:
|
throw new Error(`platform=${process.platform} is unsupported`);
|
||||||
throw new Error(`platform=${process.platform} is unsupported`);
|
}
|
||||||
}
|
})();
|
||||||
})();
|
const multiBar = new MultiBar({
|
||||||
const multiBar = new MultiBar({
|
align: "left",
|
||||||
align: "left",
|
clearOnComplete: false,
|
||||||
clearOnComplete: false,
|
hideCursor: true,
|
||||||
hideCursor: true,
|
autopadding: true,
|
||||||
autopadding: true,
|
noTTYOutput: true,
|
||||||
noTTYOutput: true,
|
format: "[{bar}] {percentage}% | {downloadArch} {binaryName}",
|
||||||
format: "[{bar}] {percentage}% | {downloadArch} {binaryName}",
|
});
|
||||||
});
|
const downloaders: BinaryDownloader[] = [
|
||||||
const baseDir = path.join(process.cwd(), "binaries", "client");
|
new LensK8sProxyDownloader({
|
||||||
const downloaders: BinaryDownloader[] = [
|
version: packageInfo.config.k8sProxyVersion,
|
||||||
new LensK8sProxyDownloader(deps, {
|
platform: normalizedPlatform,
|
||||||
|
downloadArch: "amd64",
|
||||||
|
fileArch: "x64",
|
||||||
|
baseDir: pathToBaseDir,
|
||||||
|
}, multiBar),
|
||||||
|
new KubectlDownloader({
|
||||||
|
version: packageInfo.config.bundledKubectlVersion,
|
||||||
|
platform: normalizedPlatform,
|
||||||
|
downloadArch: "amd64",
|
||||||
|
fileArch: "x64",
|
||||||
|
baseDir: pathToBaseDir,
|
||||||
|
}, multiBar),
|
||||||
|
new HelmDownloader({
|
||||||
|
version: packageInfo.config.bundledHelmVersion,
|
||||||
|
platform: normalizedPlatform,
|
||||||
|
downloadArch: "amd64",
|
||||||
|
fileArch: "x64",
|
||||||
|
baseDir: pathToBaseDir,
|
||||||
|
}, multiBar),
|
||||||
|
];
|
||||||
|
|
||||||
|
if (normalizedPlatform !== "windows") {
|
||||||
|
downloaders.push(
|
||||||
|
new LensK8sProxyDownloader({
|
||||||
version: packageInfo.config.k8sProxyVersion,
|
version: packageInfo.config.k8sProxyVersion,
|
||||||
platform: normalizedPlatform,
|
platform: normalizedPlatform,
|
||||||
downloadArch: "amd64",
|
downloadArch: "arm64",
|
||||||
fileArch: "x64",
|
fileArch: "arm64",
|
||||||
baseDir,
|
baseDir: pathToBaseDir,
|
||||||
}, multiBar),
|
}, multiBar),
|
||||||
new KubectlDownloader(deps, {
|
new KubectlDownloader({
|
||||||
version: packageInfo.config.bundledKubectlVersion,
|
version: packageInfo.config.bundledKubectlVersion,
|
||||||
platform: normalizedPlatform,
|
platform: normalizedPlatform,
|
||||||
downloadArch: "amd64",
|
downloadArch: "arm64",
|
||||||
fileArch: "x64",
|
fileArch: "arm64",
|
||||||
baseDir,
|
baseDir: pathToBaseDir,
|
||||||
}, multiBar),
|
}, multiBar),
|
||||||
new HelmDownloader(deps, {
|
new HelmDownloader({
|
||||||
version: packageInfo.config.bundledHelmVersion,
|
version: packageInfo.config.bundledHelmVersion,
|
||||||
platform: normalizedPlatform,
|
platform: normalizedPlatform,
|
||||||
downloadArch: "amd64",
|
downloadArch: "arm64",
|
||||||
fileArch: "x64",
|
fileArch: "arm64",
|
||||||
baseDir,
|
baseDir: pathToBaseDir,
|
||||||
}, multiBar),
|
}, multiBar),
|
||||||
];
|
);
|
||||||
|
|
||||||
if (normalizedPlatform !== "windows") {
|
|
||||||
downloaders.push(
|
|
||||||
new LensK8sProxyDownloader(deps, {
|
|
||||||
version: packageInfo.config.k8sProxyVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "arm64",
|
|
||||||
fileArch: "arm64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
new KubectlDownloader(deps, {
|
|
||||||
version: packageInfo.config.bundledKubectlVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "arm64",
|
|
||||||
fileArch: "arm64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
new HelmDownloader(deps, {
|
|
||||||
version: packageInfo.config.bundledHelmVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "arm64",
|
|
||||||
fileArch: "arm64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const settledResults = await Promise.allSettled(downloaders.map(downloader => (
|
|
||||||
downloader.ensureBinary()
|
|
||||||
.catch(error => {
|
|
||||||
throw new Error(`Failed to download ${downloader.args.binaryName} for ${downloader.args.platform}/${downloader.args.downloadArch}: ${error}`);
|
|
||||||
})
|
|
||||||
)));
|
|
||||||
|
|
||||||
multiBar.stop();
|
|
||||||
const errorResult = settledResults.find(res => res.status === "rejected") as PromiseRejectedResult | undefined;
|
|
||||||
|
|
||||||
if (errorResult) {
|
|
||||||
console.error("234", String(errorResult.reason));
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
process.exit(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main().catch(error => console.error("from main", error));
|
const settledResults = await Promise.allSettled(downloaders.map(downloader => (
|
||||||
|
downloader.ensureBinary()
|
||||||
|
.catch(error => {
|
||||||
|
throw new Error(`Failed to download ${downloader.args.binaryName} for ${downloader.args.platform}/${downloader.args.downloadArch}: ${error}`);
|
||||||
|
})
|
||||||
|
)));
|
||||||
|
|
||||||
|
multiBar.stop();
|
||||||
|
const errorResult = settledResults.find(res => res.status === "rejected") as PromiseRejectedResult | undefined;
|
||||||
|
|
||||||
|
if (errorResult) {
|
||||||
|
console.error("234", String(errorResult.reason));
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
process.exit(0);
|
||||||
19
packages/download-binaries/tsconfig.json
Normal file
19
packages/download-binaries/tsconfig.json
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"extends": "../../tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"outDir": "dist/",
|
||||||
|
"paths": {
|
||||||
|
"*": [
|
||||||
|
"node_modules/*",
|
||||||
|
"types/*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/**/*",
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules",
|
||||||
|
]
|
||||||
|
}
|
||||||
1474
packages/download-binaries/yarn.lock
Normal file
1474
packages/download-binaries/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,280 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
||||||
*/
|
|
||||||
import packageInfo from "../package.json";
|
|
||||||
import type { FileHandle } from "fs/promises";
|
|
||||||
import { open } from "fs/promises";
|
|
||||||
import type { WriteStream } from "fs-extra";
|
|
||||||
import { constants, ensureDir, unlink } from "fs-extra";
|
|
||||||
import path from "path";
|
|
||||||
import type * as FetchModule from "@k8slens/node-fetch";
|
|
||||||
import { promisify } from "util";
|
|
||||||
import { pipeline as _pipeline, Transform, Writable } from "stream";
|
|
||||||
import type { SingleBar } from "cli-progress";
|
|
||||||
import { MultiBar } from "cli-progress";
|
|
||||||
import { extract } from "tar-stream";
|
|
||||||
import gunzip from "gunzip-maybe";
|
|
||||||
import { isErrnoException, setTimeoutFor } from "../../core/src/common/utils";
|
|
||||||
import AbortController from "abort-controller";
|
|
||||||
|
|
||||||
type Response = FetchModule.Response;
|
|
||||||
type RequestInfo = FetchModule.RequestInfo;
|
|
||||||
type RequestInit = FetchModule.RequestInit;
|
|
||||||
|
|
||||||
const pipeline = promisify(_pipeline);
|
|
||||||
|
|
||||||
const getBinaryName = (binaryName: string, { forPlatform }: { forPlatform : string }) => {
|
|
||||||
if (forPlatform === "windows") {
|
|
||||||
return `${binaryName}.exe`;
|
|
||||||
}
|
|
||||||
|
|
||||||
return binaryName;
|
|
||||||
};
|
|
||||||
|
|
||||||
interface BinaryDownloaderArgs {
|
|
||||||
readonly version: string;
|
|
||||||
readonly platform: SupportedPlatform;
|
|
||||||
readonly downloadArch: string;
|
|
||||||
readonly fileArch: string;
|
|
||||||
readonly binaryName: string;
|
|
||||||
readonly baseDir: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface BinaryDownloaderDependencies {
|
|
||||||
fetch: (url: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class BinaryDownloader {
|
|
||||||
protected abstract readonly url: string;
|
|
||||||
protected readonly bar: SingleBar;
|
|
||||||
protected readonly target: string;
|
|
||||||
|
|
||||||
protected getTransformStreams(file: Writable): (NodeJS.ReadWriteStream | NodeJS.WritableStream)[] {
|
|
||||||
return [file];
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor(protected readonly dependencies: BinaryDownloaderDependencies, public readonly args: BinaryDownloaderArgs, multiBar: MultiBar) {
|
|
||||||
this.bar = multiBar.create(1, 0, args);
|
|
||||||
this.target = path.join(args.baseDir, args.platform, args.fileArch, args.binaryName);
|
|
||||||
}
|
|
||||||
|
|
||||||
async ensureBinary(): Promise<void> {
|
|
||||||
if (process.env.LENS_SKIP_DOWNLOAD_BINARIES === "true") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const controller = new AbortController();
|
|
||||||
|
|
||||||
setTimeoutFor(controller, 15 * 60 * 1000);
|
|
||||||
|
|
||||||
const stream = await this.dependencies.fetch(this.url, {
|
|
||||||
signal: controller.signal,
|
|
||||||
});
|
|
||||||
const total = Number(stream.headers.get("content-length"));
|
|
||||||
const bar = this.bar;
|
|
||||||
let fileHandle: FileHandle | undefined = undefined;
|
|
||||||
|
|
||||||
if (isNaN(total)) {
|
|
||||||
throw new Error("no content-length header was present");
|
|
||||||
}
|
|
||||||
|
|
||||||
bar.setTotal(total);
|
|
||||||
|
|
||||||
await ensureDir(path.dirname(this.target), 0o755);
|
|
||||||
|
|
||||||
try {
|
|
||||||
/**
|
|
||||||
* This is necessary because for some reason `createWriteStream({ flags: "wx" })`
|
|
||||||
* was throwing someplace else and not here
|
|
||||||
*/
|
|
||||||
const handle = fileHandle = await open(this.target, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL);
|
|
||||||
|
|
||||||
if (!stream.body) {
|
|
||||||
throw new Error("no body on stream");
|
|
||||||
}
|
|
||||||
|
|
||||||
await pipeline(
|
|
||||||
stream.body,
|
|
||||||
new Transform({
|
|
||||||
transform(chunk, encoding, callback) {
|
|
||||||
bar.increment(chunk.length);
|
|
||||||
this.push(chunk);
|
|
||||||
callback();
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
...this.getTransformStreams(new Writable({
|
|
||||||
write(chunk, encoding, cb) {
|
|
||||||
handle.write(chunk)
|
|
||||||
.then(() => cb())
|
|
||||||
.catch(cb);
|
|
||||||
},
|
|
||||||
})),
|
|
||||||
);
|
|
||||||
await fileHandle.chmod(0o755);
|
|
||||||
await fileHandle.close();
|
|
||||||
} catch (error) {
|
|
||||||
await fileHandle?.close();
|
|
||||||
|
|
||||||
if (isErrnoException(error) && error.code === "EEXIST") {
|
|
||||||
bar.increment(total); // mark as finished
|
|
||||||
controller.abort(); // stop trying to download
|
|
||||||
} else {
|
|
||||||
await unlink(this.target);
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class LensK8sProxyDownloader extends BinaryDownloader {
|
|
||||||
protected readonly url: string;
|
|
||||||
|
|
||||||
constructor(deps: BinaryDownloaderDependencies, args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
|
||||||
const binaryName = getBinaryName("lens-k8s-proxy", { forPlatform: args.platform });
|
|
||||||
|
|
||||||
super(deps, { ...args, binaryName }, bar);
|
|
||||||
this.url = `https://github.com/lensapp/lens-k8s-proxy/releases/download/v${args.version}/lens-k8s-proxy-${args.platform}-${args.downloadArch}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class KubectlDownloader extends BinaryDownloader {
|
|
||||||
protected readonly url: string;
|
|
||||||
|
|
||||||
constructor(deps: BinaryDownloaderDependencies, args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
|
||||||
const binaryName = getBinaryName("kubectl", { forPlatform: args.platform });
|
|
||||||
|
|
||||||
super(deps, { ...args, binaryName }, bar);
|
|
||||||
this.url = `https://storage.googleapis.com/kubernetes-release/release/v${args.version}/bin/${args.platform}/${args.downloadArch}/${binaryName}`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class HelmDownloader extends BinaryDownloader {
|
|
||||||
protected readonly url: string;
|
|
||||||
|
|
||||||
constructor(deps: BinaryDownloaderDependencies, args: Omit<BinaryDownloaderArgs, "binaryName">, bar: MultiBar) {
|
|
||||||
const binaryName = getBinaryName("helm", { forPlatform: args.platform });
|
|
||||||
|
|
||||||
super(deps, { ...args, binaryName }, bar);
|
|
||||||
this.url = `https://get.helm.sh/helm-v${args.version}-${args.platform}-${args.downloadArch}.tar.gz`;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected getTransformStreams(file: WriteStream) {
|
|
||||||
const extracting = extract({
|
|
||||||
allowUnknownFormat: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
extracting.on("entry", (headers, stream, next) => {
|
|
||||||
if (headers.name.endsWith(this.args.binaryName)) {
|
|
||||||
stream
|
|
||||||
.pipe(file)
|
|
||||||
.once("finish", () => next())
|
|
||||||
.once("error", next);
|
|
||||||
} else {
|
|
||||||
stream.resume();
|
|
||||||
next();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return [gunzip(3), extracting];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type SupportedPlatform = "darwin" | "linux" | "windows";
|
|
||||||
|
|
||||||
const importFetchModule = new Function('return import("node-fetch")') as () => Promise<typeof FetchModule>;
|
|
||||||
|
|
||||||
async function main() {
|
|
||||||
const deps: BinaryDownloaderDependencies = {
|
|
||||||
fetch: (await importFetchModule()).default,
|
|
||||||
};
|
|
||||||
const normalizedPlatform = (() => {
|
|
||||||
switch (process.platform) {
|
|
||||||
case "darwin":
|
|
||||||
return "darwin";
|
|
||||||
case "linux":
|
|
||||||
return "linux";
|
|
||||||
case "win32":
|
|
||||||
return "windows";
|
|
||||||
default:
|
|
||||||
throw new Error(`platform=${process.platform} is unsupported`);
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
const multiBar = new MultiBar({
|
|
||||||
align: "left",
|
|
||||||
clearOnComplete: false,
|
|
||||||
hideCursor: true,
|
|
||||||
autopadding: true,
|
|
||||||
noTTYOutput: true,
|
|
||||||
format: "[{bar}] {percentage}% | {downloadArch} {binaryName}",
|
|
||||||
});
|
|
||||||
const baseDir = path.join(process.cwd(), "binaries", "client");
|
|
||||||
const downloaders: BinaryDownloader[] = [
|
|
||||||
new LensK8sProxyDownloader(deps, {
|
|
||||||
version: packageInfo.config.k8sProxyVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "amd64",
|
|
||||||
fileArch: "x64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
new KubectlDownloader(deps, {
|
|
||||||
version: packageInfo.config.bundledKubectlVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "amd64",
|
|
||||||
fileArch: "x64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
new HelmDownloader(deps, {
|
|
||||||
version: packageInfo.config.bundledHelmVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "amd64",
|
|
||||||
fileArch: "x64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
];
|
|
||||||
|
|
||||||
if (normalizedPlatform !== "windows") {
|
|
||||||
downloaders.push(
|
|
||||||
new LensK8sProxyDownloader(deps, {
|
|
||||||
version: packageInfo.config.k8sProxyVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "arm64",
|
|
||||||
fileArch: "arm64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
new KubectlDownloader(deps, {
|
|
||||||
version: packageInfo.config.bundledKubectlVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "arm64",
|
|
||||||
fileArch: "arm64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
new HelmDownloader(deps, {
|
|
||||||
version: packageInfo.config.bundledHelmVersion,
|
|
||||||
platform: normalizedPlatform,
|
|
||||||
downloadArch: "arm64",
|
|
||||||
fileArch: "arm64",
|
|
||||||
baseDir,
|
|
||||||
}, multiBar),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const settledResults = await Promise.allSettled(downloaders.map(downloader => (
|
|
||||||
downloader.ensureBinary()
|
|
||||||
.catch(error => {
|
|
||||||
throw new Error(`Failed to download ${downloader.args.binaryName} for ${downloader.args.platform}/${downloader.args.downloadArch}: ${error}`);
|
|
||||||
})
|
|
||||||
)));
|
|
||||||
|
|
||||||
multiBar.stop();
|
|
||||||
const errorResult = settledResults.find(res => res.status === "rejected") as PromiseRejectedResult | undefined;
|
|
||||||
|
|
||||||
if (errorResult) {
|
|
||||||
console.error("234", String(errorResult.reason));
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
process.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
main().catch(error => console.error("from main", error));
|
|
||||||
@ -35,7 +35,7 @@
|
|||||||
"dev:renderer": "env NODE_ENV=development ts-node ./webpack/dev-server.ts",
|
"dev:renderer": "env NODE_ENV=development ts-node ./webpack/dev-server.ts",
|
||||||
"test:integration": "jest -xyz --runInBand --detectOpenHandles --forceExit --modulePaths=[\"<rootDir>/integration/\"];",
|
"test:integration": "jest -xyz --runInBand --detectOpenHandles --forceExit --modulePaths=[\"<rootDir>/integration/\"];",
|
||||||
"build:tray-icons": "ts-node build/generate-tray-icons.ts",
|
"build:tray-icons": "ts-node build/generate-tray-icons.ts",
|
||||||
"download:binaries": "ts-node build/download_binaries.ts"
|
"download:binaries": "npm exec -- @k8slens/download-binaries --package $INIT_CWD/package.json --base-dir $INIT_CWD/binaries/client"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"k8sProxyVersion": "0.3.0",
|
"k8sProxyVersion": "0.3.0",
|
||||||
@ -193,6 +193,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@k8slens/core": "^6.4.0-beta.6",
|
"@k8slens/core": "^6.4.0-beta.6",
|
||||||
|
"@k8slens/download-binaries": "^6.4.0-beta.6",
|
||||||
"@ogre-tools/fp": "^12.0.1",
|
"@ogre-tools/fp": "^12.0.1",
|
||||||
"@ogre-tools/injectable": "^12.0.1",
|
"@ogre-tools/injectable": "^12.0.1",
|
||||||
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1",
|
"@ogre-tools/injectable-extension-for-auto-registration": "^12.0.1",
|
||||||
@ -207,10 +208,8 @@
|
|||||||
"@swc/jest": "^0.2.24",
|
"@swc/jest": "^0.2.24",
|
||||||
"@types/byline": "^4.2.33",
|
"@types/byline": "^4.2.33",
|
||||||
"@types/chart.js": "^2.9.36",
|
"@types/chart.js": "^2.9.36",
|
||||||
"@types/cli-progress": "^3.11.0",
|
|
||||||
"@types/color": "^3.0.3",
|
"@types/color": "^3.0.3",
|
||||||
"@types/crypto-js": "^3.1.47",
|
"@types/crypto-js": "^3.1.47",
|
||||||
"@types/gunzip-maybe": "^1.4.0",
|
|
||||||
"@types/lodash": "^4.14.191",
|
"@types/lodash": "^4.14.191",
|
||||||
"@types/node": "^16.18.6",
|
"@types/node": "^16.18.6",
|
||||||
"@types/proper-lockfile": "^4.1.2",
|
"@types/proper-lockfile": "^4.1.2",
|
||||||
@ -220,7 +219,6 @@
|
|||||||
"@types/react-window": "^1.8.5",
|
"@types/react-window": "^1.8.5",
|
||||||
"@types/request-promise-native": "^1.0.18",
|
"@types/request-promise-native": "^1.0.18",
|
||||||
"@types/tar": "^6.1.3",
|
"@types/tar": "^6.1.3",
|
||||||
"@types/tar-stream": "^2.2.2",
|
|
||||||
"@types/tcp-port-used": "^1.0.1",
|
"@types/tcp-port-used": "^1.0.1",
|
||||||
"@types/url-parse": "^1.4.8",
|
"@types/url-parse": "^1.4.8",
|
||||||
"@types/uuid": "^8.3.4",
|
"@types/uuid": "^8.3.4",
|
||||||
@ -231,7 +229,6 @@
|
|||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
"autoprefixer": "^10.4.13",
|
"autoprefixer": "^10.4.13",
|
||||||
"circular-dependency-plugin": "^5.2.2",
|
"circular-dependency-plugin": "^5.2.2",
|
||||||
"cli-progress": "^3.11.2",
|
|
||||||
"concurrently": "^7.6.0",
|
"concurrently": "^7.6.0",
|
||||||
"css-loader": "^6.7.2",
|
"css-loader": "^6.7.2",
|
||||||
"electron": "^19.1.9",
|
"electron": "^19.1.9",
|
||||||
@ -239,7 +236,6 @@
|
|||||||
"electron-notarize": "^0.3.0",
|
"electron-notarize": "^0.3.0",
|
||||||
"esbuild-loader": "^2.20.0",
|
"esbuild-loader": "^2.20.0",
|
||||||
"fork-ts-checker-webpack-plugin": "^7.2.14",
|
"fork-ts-checker-webpack-plugin": "^7.2.14",
|
||||||
"gunzip-maybe": "^1.4.2",
|
|
||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"jest": "^28.1.3",
|
"jest": "^28.1.3",
|
||||||
"jest-environment-jsdom": "^28.1.3",
|
"jest-environment-jsdom": "^28.1.3",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -9,13 +9,15 @@
|
|||||||
"clean": "rm -rf dist/",
|
"clean": "rm -rf dist/",
|
||||||
"build": "swc ./src/index.ts -o ./dist/index.mjs"
|
"build": "swc ./src/index.ts -o ./dist/index.mjs"
|
||||||
},
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"command-line-args": "^5.2.1",
|
||||||
|
"semver": "^7.3.8"
|
||||||
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@swc/cli": "^0.1.59",
|
"@swc/cli": "^0.1.59",
|
||||||
"@swc/core": "^1.3.28",
|
"@swc/core": "^1.3.28",
|
||||||
"@types/command-line-args": "^5.2.0",
|
"@types/command-line-args": "^5.2.0",
|
||||||
"@types/node": "^16.18.11",
|
"@types/node": "^16.18.11",
|
||||||
"@types/semver": "^7.3.13",
|
"@types/semver": "^7.3.13"
|
||||||
"command-line-args": "^5.2.1",
|
|
||||||
"semver": "^7.3.8"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"jsx": "react",
|
"jsx": "react",
|
||||||
"target": "ES2019",
|
"target": "ES2019",
|
||||||
"module": "ESNext",
|
"module": "ES2022",
|
||||||
"lib": [
|
"lib": [
|
||||||
"ESNext",
|
"ESNext",
|
||||||
"DOM",
|
"DOM",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user