Compare commits

..

7 Commits

7 changed files with 41 additions and 11 deletions

View File

@@ -27,6 +27,20 @@ workflows:
export PATH="$HOME/.cargo/bin:$PATH"
PACKAGE_VERSION=$(node -p "require('./package.json').version")
node release.js --installer --tag="v$PACKAGE_VERSION"
- name: Verify bundled node permissions
script: |
if [ -f "bin/node" ]; then
chmod +x bin/node
xattr -cr bin/node || true
ls -la bin/node
file bin/node
fi
APP_NODE=$(find src-tauri/target/release/bundle -name "node" -path "*bin*" 2>/dev/null | head -1)
if [ -n "$APP_NODE" ]; then
chmod +x "$APP_NODE"
xattr -cr "$APP_NODE" || true
ls -la "$APP_NODE"
fi
artifacts:
- src-tauri/target/release/bundle/dmg/*.dmg
- src-tauri/target/release/bundle/macos/*.app

View File

@@ -1,6 +1,6 @@
{
"name": "vyla-home",
"version": "1.1.17",
"version": "1.1.21",
"description": "Vyla Home Desktop App Launcher",
"main": "main.js",
"scripts": {
@@ -54,4 +54,4 @@
"installerHeaderIcon": "build/icon.ico"
}
}
}
}

View File

@@ -295,11 +295,18 @@ function ensureBundledNode() {
try {
execSync(`tar -xzf node.tar.gz ${tarName}/bin/node`, { cwd: binDir });
fs.renameSync(path.join(binDir, tarName, 'bin', 'node'), path.join(binDir, 'node'));
const extractedNode = path.join(binDir, tarName, 'bin', 'node');
const finalNode = path.join(binDir, 'node');
fs.renameSync(extractedNode, finalNode);
fs.rmSync(path.join(binDir, tarName), { recursive: true, force: true });
fs.unlinkSync(tarPath);
execSync(`chmod +x "${path.join(binDir, 'node')}"`, { cwd: binDir });
fs.chmodSync(finalNode, 0o755);
try {
execSync(`xattr -d com.apple.quarantine "${finalNode}"`);
} catch (_) { }
fs.writeFileSync(versionMarker, nodeVersion, 'utf8');
resolve();

2
src-tauri/Cargo.lock generated
View File

@@ -4222,7 +4222,7 @@ dependencies = [
[[package]]
name = "vyla-home"
version = "1.1.17"
version = "1.1.21"
dependencies = [
"base64 0.22.1",
"serde",

View File

@@ -1,6 +1,6 @@
[package]
name = "vyla-home"
version = "1.1.17"
version = "1.1.21"
description = "Vyla Home Desktop App Launcher"
edition = "2021"

View File

@@ -58,15 +58,23 @@ fn kill_child_process(child: &mut Child) {
fn find_node_binary(app: &tauri::App) -> Option<String> {
if let Ok(resource_dir) = app.path().resource_dir() {
#[cfg(windows)]
let candidates = [
resource_dir.join("bin").join("node.exe"),
resource_dir.join("bin").join("node"),
resource_dir.join("node.exe"),
resource_dir.join("node"),
resource_dir.join("_up_").join("bin").join("node.exe"),
resource_dir.join("_up_").join("bin").join("node"),
resource_dir.join("_up_").join("node.exe"),
resource_dir.join("up").join("bin").join("node.exe"),
resource_dir.join("up").join("node.exe"),
];
#[cfg(not(windows))]
let candidates = [
resource_dir.join("bin").join("node"),
resource_dir.join("node"),
resource_dir.join("_up_").join("bin").join("node"),
resource_dir.join("_up_").join("node"),
resource_dir.join("up").join("bin").join("node"),
resource_dir.join("up").join("node"),
];
for candidate in candidates {
if candidate.exists() {
@@ -156,6 +164,7 @@ fn resolve_script_and_root(app: &tauri::App) -> (String, String) {
let candidates = vec![
resource_dir.join("main.js"),
resource_dir.join("_up_").join("main.js"),
resource_dir.join("up").join("main.js"),
];
for candidate in candidates {

View File

@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Vyla Home",
"version": "1.1.17",
"version": "1.1.21",
"identifier": "com.vyla.home",
"build": {
"frontendDist": "../ui"
@@ -41,4 +41,4 @@
"../node_modules/**/*"
]
}
}
}