trying fix macos download
This commit is contained in:
@@ -95,6 +95,17 @@ pub async fn download_ytdlp(app: &AppHandle) -> Result<PathBuf> {
|
|||||||
fs::set_permissions(&path, perms)?;
|
fs::set_permissions(&path, perms)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
{
|
||||||
|
// Remove quarantine attribute to allow execution on macOS
|
||||||
|
std::process::Command::new("xattr")
|
||||||
|
.arg("-d")
|
||||||
|
.arg("com.apple.quarantine")
|
||||||
|
.arg(&path)
|
||||||
|
.output()
|
||||||
|
.ok();
|
||||||
|
}
|
||||||
|
|
||||||
Ok(path)
|
Ok(path)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,6 +252,17 @@ pub async fn download_qjs(app: &AppHandle) -> Result<PathBuf> {
|
|||||||
fs::set_permissions(&final_path, perms)?;
|
fs::set_permissions(&final_path, perms)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
{
|
||||||
|
// Remove quarantine attribute to allow execution on macOS
|
||||||
|
std::process::Command::new("xattr")
|
||||||
|
.arg("-d")
|
||||||
|
.arg("com.apple.quarantine")
|
||||||
|
.arg(&final_path)
|
||||||
|
.output()
|
||||||
|
.ok();
|
||||||
|
}
|
||||||
|
|
||||||
Ok(final_path)
|
Ok(final_path)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,11 +284,31 @@ pub async fn ensure_binaries(app: &AppHandle) -> Result<()> {
|
|||||||
let ytdlp = get_ytdlp_path(app)?;
|
let ytdlp = get_ytdlp_path(app)?;
|
||||||
if !ytdlp.exists() {
|
if !ytdlp.exists() {
|
||||||
download_ytdlp(app).await?;
|
download_ytdlp(app).await?;
|
||||||
|
} else {
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
{
|
||||||
|
std::process::Command::new("xattr")
|
||||||
|
.arg("-d")
|
||||||
|
.arg("com.apple.quarantine")
|
||||||
|
.arg(&ytdlp)
|
||||||
|
.output()
|
||||||
|
.ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let qjs = get_qjs_path(app)?;
|
let qjs = get_qjs_path(app)?;
|
||||||
if !qjs.exists() {
|
if !qjs.exists() {
|
||||||
download_qjs(app).await?;
|
download_qjs(app).await?;
|
||||||
|
} else {
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
{
|
||||||
|
std::process::Command::new("xattr")
|
||||||
|
.arg("-d")
|
||||||
|
.arg("com.apple.quarantine")
|
||||||
|
.arg(&qjs)
|
||||||
|
.output()
|
||||||
|
.ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ pub async fn fetch_metadata(app: &AppHandle, url: &str, parse_mix_playlist: bool
|
|||||||
cmd.creation_flags(0x08000000);
|
cmd.creation_flags(0x08000000);
|
||||||
|
|
||||||
// Pass the runtime and its absolute path to --js-runtimes
|
// Pass the runtime and its absolute path to --js-runtimes
|
||||||
|
// Rust's Command automatically handles spaces in arguments, so we should NOT quote the path here.
|
||||||
cmd.arg("--js-runtimes").arg(format!("quickjs:{}", qjs_path.to_string_lossy()));
|
cmd.arg("--js-runtimes").arg(format!("quickjs:{}", qjs_path.to_string_lossy()));
|
||||||
|
|
||||||
cmd.arg("--dump-single-json")
|
cmd.arg("--dump-single-json")
|
||||||
@@ -170,6 +171,7 @@ pub async fn download_video(
|
|||||||
|
|
||||||
// Pass the runtime and its absolute path to --js-runtimes
|
// Pass the runtime and its absolute path to --js-runtimes
|
||||||
args.push("--js-runtimes".to_string());
|
args.push("--js-runtimes".to_string());
|
||||||
|
// Rust's Command automatically handles spaces in arguments, so we should NOT quote the path here.
|
||||||
args.push(format!("quickjs:{}", qjs_path.to_string_lossy()));
|
args.push(format!("quickjs:{}", qjs_path.to_string_lossy()));
|
||||||
|
|
||||||
args.push(url);
|
args.push(url);
|
||||||
|
|||||||
Reference in New Issue
Block a user