aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-12-21 18:21:49 +0000
committerGitHub <[email protected]>2020-12-21 18:21:49 +0000
commite4f922a74d66153ac099ad909e0ea5151292b8a5 (patch)
treea1a91f10170e2f5ad5372ac96b63aa3fcff4e91e
parent87762874ef53b7a24c13e78faded7bc88ea7e435 (diff)
parentee734668308df4549eb2ddbd7fed7911dc3a7ba3 (diff)
Merge #6985
6985: Use /etc/os-release to check for NixOS r=matklad a=lnicola Closes #5641 The motivation in #5641 isn't too strong, but /etc/os-release exists on pretty much every Linux distro, while /etc/nixos sounds like an implementation detail. Co-authored-by: LaurenČ›iu Nicola <[email protected]>
-rw-r--r--editors/code/src/main.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts
index 191960960..4eaaed62b 100644
--- a/editors/code/src/main.ts
+++ b/editors/code/src/main.ts
@@ -340,7 +340,7 @@ async function getServer(config: Config, state: PersistentState): Promise<string
340 }); 340 });
341 341
342 // Patching executable if that's NixOS. 342 // Patching executable if that's NixOS.
343 if (await fs.stat("/etc/nixos").then(_ => true).catch(_ => false)) { 343 if (await isNixOs()) {
344 await patchelf(dest); 344 await patchelf(dest);
345 } 345 }
346 346
@@ -348,6 +348,15 @@ async function getServer(config: Config, state: PersistentState): Promise<string
348 return dest; 348 return dest;
349} 349}
350 350
351async function isNixOs(): Promise<boolean> {
352 try {
353 const contents = await fs.readFile("/etc/os-release");
354 return contents.indexOf("ID=nixos") !== -1;
355 } catch (e) {
356 return false;
357 }
358}
359
351async function downloadWithRetryDialog<T>(state: PersistentState, downloadFunc: () => Promise<T>): Promise<T> { 360async function downloadWithRetryDialog<T>(state: PersistentState, downloadFunc: () => Promise<T>): Promise<T> {
352 while (true) { 361 while (true) {
353 try { 362 try {