Skip to content

Commit ffde0d2

Browse files
committed
Add arm build
1 parent c57badd commit ffde0d2

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

src/constants.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import * as path from "path";
2-
import { getRuntimeEnv } from "./utils/utils";
2+
import { execSync } from "child_process";
3+
import { getIsArm, getRuntimeEnv } from "./utils/utils";
34

45
export const BACKEND_SERVER_URL = "https://backend.crusher.dev";
56
export const FRONTEND_SERVER_URL = "https://app.crusher.dev";
@@ -10,7 +11,8 @@ export const APP_DIRECTORY =
1011

1112
export const recorderVersion = `1.0.30`;
1213

13-
export const RECORDER_MAC_BUILD = `https://github.com/crusherdev/crusher-downloads/releases/download/v${recorderVersion}/Crusher.Recorder-${recorderVersion}-mac.zip`;
14+
export const RECORDER_MAC_BUILD = `https://github.com/crusherdev/crusher-downloads/releases/download/v${recorderVersion}/Crusher.Recorder-${recorderVersion}-mac-x64.zip`;
15+
export const RECORDER_MAC_ARM64_BUILD = `https://github.com/crusherdev/crusher-downloads/releases/download/v${recorderVersion}/Crusher.Recorder-${recorderVersion}-mac-arm64.zip`;
1416
export const RECORDER_LINUX_BUILd = `https://github.com/crusherdev/crusher-downloads/releases/download/v${recorderVersion}/Crusher.Recorder-${recorderVersion}-linux.zip`;
1517

1618

@@ -26,14 +28,17 @@ export const getRecorderBuildForPlatfrom = () => {
2628
platform: "linux",
2729
version: RECORDER_LINUX_BUILd.split("/").reverse()[1],
2830
};
29-
if (process.platform === "darwin")
31+
if (process.platform === "darwin") {
32+
const buildUrl = getIsArm() ? RECORDER_MAC_ARM64_BUILD : RECORDER_MAC_BUILD;
3033
return {
31-
url: RECORDER_MAC_BUILD,
34+
url: buildUrl,
3235
name: path.basename(RECORDER_MAC_BUILD),
3336
platform: "mac",
3437
version: RECORDER_MAC_BUILD.split("/").reverse()[1],
3538
};
3639

40+
}
41+
3742
throw new Error("Recorder not available for your platfrom yet");
3843
};
3944

src/utils/utils.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
BACKEND_SERVER_URL,
55
FRONTEND_SERVER_URL,
66
} from "../constants";
7-
import { exec } from "child_process";
7+
import { exec, execSync } from "child_process";
88
import * as fs from "fs";
99
import * as url from "url";
1010
import * as path from "path";
@@ -154,3 +154,17 @@ export const resolvePathToAppDirectory = (relativePath): string => {
154154
export const resolvePathToDownloadDirectory = (relativePath): string => {
155155
return path.resolve(APP_DIRECTORY, relativePath);
156156
};
157+
158+
159+
// See https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment.
160+
export const getIsArm = () => {
161+
try {
162+
const isCurrentlyTranslated = execSync('sysctl sysctl.proc_translated', { stdio: 'pipe' });
163+
164+
return true;
165+
} catch (e) {
166+
// On non-ARM macs `sysctl sysctl.proc_translated` throws with
167+
// sysctl: unknown oid 'sysctl.proc_translated'
168+
return false;
169+
}
170+
};

0 commit comments

Comments
 (0)