aboutsummaryrefslogtreecommitdiff
path: root/desktop/scripts/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/scripts/common.py')
-rw-r--r--desktop/scripts/common.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/desktop/scripts/common.py b/desktop/scripts/common.py
new file mode 100644
index 00000000..acdeaa6b
--- /dev/null
+++ b/desktop/scripts/common.py
@@ -0,0 +1,32 @@
+import os
+import subprocess
+
+
+def get_binary_arches(app_dir):
+ universal = []
+ silicon = []
+ intel = []
+ for dirpath, dirnames, filenames in os.walk(app_dir):
+ for basename in filenames:
+ filename = os.path.join(dirpath, basename)
+ if os.path.isfile(filename):
+ out = subprocess.check_output(["file", filename]).decode("utf-8")
+ if (
+ "Mach-O 64-bit executable" in out
+ or "Mach-O 64-bit bundle" in out
+ or "Mach-O 64-bit dynamically linked shared library" in out
+ ):
+ arm64, x86 = False, False
+ if "arm64" in out:
+ arm64 = True
+ if "x86_64" in out:
+ x86 = True
+
+ if arm64 and x86:
+ universal.append(filename)
+ elif arm64:
+ silicon.append(filename)
+ elif x86:
+ intel.append(filename)
+
+ return universal, silicon, intel