mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-04-19 22:19:49 -04:00
* Move postinstall script to a preprep script - Fix libheif crate failing to build with our libheif - Rework CI due to postinstall to preprep changes * Linux heif build script + Update webp * Fix ctrl+c/ctrl+v bug * Improve libheif linux script - Add support for linux aarch64 - Add CI workflow to build libheif for linux - Some other misc fixes * Fix libheif CI requires sudo * Fix wrong path for libheif build.rs override in Windows * Fix wrong path manipulations in libheif build script * 🤦 * Use ubuntu-latest in libheif action - Specify glib version in target triple to support old distros - Fix libheif artifact publishing * Fix artifact upload path again * Add musl support for libheif - Remove unused files from libheif artifact - Add setup logic for libheif in postinstall script * Build libheif for linux as a shared lib * Fix meson not building the correct arch - Add logic to get git branch from githubs CI env vars * libheif finnaly works on linux - Make spacedrive binary rpath point to where appimage and deb expects our libs to be - Add some logic to tauri.js to convince tauri to bundle our shared libs - Work-around appimage bundling step breaking sometimes - Add logic to handle sigint in tauri.js to ensure we clean up after ourselves - Rename postinstall.mjs to setup.mjs - Add logic to setup.mjs to point our dev build to our shared libs in linux * Fix windows dekstop dev - Rename setup.mjs to preprep.mjs * test cache-factory * Fix preprep script not parsing the cross compilation target triple and always using the host info to download dependencies - Fix action env vars not being correctly passed - Remove possibility to pass multiple targests to rust action * Don't compile mobile crates on desktop targets * Remove cache-factory pull_request trigger * remove patched tauri cli * Use git plumbing command to get remote branch name - Fallback to reading .git/HEAD if remote name was not retrieved * fix type --------- Co-authored-by: Brendan Allan <brendonovich@outlook.com>
61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
import { exec as execCb } from 'node:child_process';
|
|
import * as os from 'node:os';
|
|
import { env } from 'node:process';
|
|
import { promisify } from 'node:util';
|
|
|
|
const __debug = env.NODE_ENV === 'debug';
|
|
|
|
let libc = 'glibc';
|
|
if (os.type() === 'Linux') {
|
|
try {
|
|
const exec = promisify(execCb);
|
|
if ((await exec('ldd /bin/ls')).stdout.includes('musl')) {
|
|
libc = 'musl';
|
|
}
|
|
} catch (error) {
|
|
if (__debug) {
|
|
console.warn(`Failed to check libc type`);
|
|
console.error(error);
|
|
}
|
|
}
|
|
}
|
|
|
|
const OS_TYPE = {
|
|
darwin: 'Darwin',
|
|
windows: 'Windows_NT',
|
|
linux: 'Linux'
|
|
};
|
|
|
|
export function getMachineId() {
|
|
let machineId;
|
|
|
|
/**
|
|
* Possible TARGET_TRIPLE:
|
|
* x86_64-apple-darwin
|
|
* aarch64-apple-darwin
|
|
* x86_64-pc-windows-msvc
|
|
* aarch64-pc-windows-msvc
|
|
* x86_64-unknown-linux-gnu
|
|
* x86_64-unknown-linux-musl
|
|
* aarch64-unknown-linux-gnu
|
|
* aarch64-unknown-linux-musl
|
|
* armv7-unknown-linux-gnueabihf
|
|
*/
|
|
if (env.TARGET_TRIPLE) {
|
|
const target = env.TARGET_TRIPLE.split('-');
|
|
const osType = OS_TYPE[target[2]];
|
|
|
|
if (!osType) throw new Error(`Unknown OS type: ${target[2]}`);
|
|
if (!target[0]) throw new Error(`Unknown machine type: ${target[0]}`);
|
|
|
|
machineId = [osType, target[0]];
|
|
if (machineId[0] === 'Linux') machineId.push(target[3].includes('musl') ? 'musl' : 'glibc');
|
|
} else {
|
|
// Current machine identifiers
|
|
machineId = [os.type(), os.machine()];
|
|
if (machineId[0] === 'Linux') machineId.push(libc);
|
|
}
|
|
|
|
return machineId;
|
|
}
|