mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-03 10:11:15 +02:00
57 lines
1.6 KiB
Rust
57 lines
1.6 KiB
Rust
// Copyright 2019-2021 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
#![cfg_attr(
|
|
all(not(debug_assertions), target_os = "windows"),
|
|
windows_subsystem = "windows"
|
|
)]
|
|
|
|
#[cfg(not(any(feature = "api-all", feature = "shell-all", feature = "shell-execute")))]
|
|
fn main() {
|
|
eprintln!("Not supported without `api-all`, `shell-all` or `shell-execute`")
|
|
}
|
|
|
|
#[cfg(any(feature = "api-all", feature = "shell-all", feature = "shell-execute"))]
|
|
fn main() {
|
|
use tauri::{
|
|
api::{
|
|
path::{resolve_path, BaseDirectory},
|
|
process::{Command, CommandEvent},
|
|
},
|
|
Manager,
|
|
};
|
|
let context = tauri::generate_context!("../../examples/resources/src-tauri/tauri.conf.json");
|
|
let script_path = resolve_path(
|
|
context.config(),
|
|
context.package_info(),
|
|
"assets/index.js",
|
|
Some(BaseDirectory::Resource),
|
|
)
|
|
.unwrap();
|
|
tauri::Builder::default()
|
|
.setup(move |app| {
|
|
let window = app.get_window("main").unwrap();
|
|
let script_path = script_path.to_string_lossy().to_string();
|
|
tauri::async_runtime::spawn(async move {
|
|
let (mut rx, _child) = Command::new("node")
|
|
.args(&[script_path])
|
|
.spawn()
|
|
.expect("Failed to spawn node");
|
|
|
|
#[allow(clippy::collapsible_match)]
|
|
while let Some(event) = rx.recv().await {
|
|
if let CommandEvent::Stdout(line) = event {
|
|
window
|
|
.emit("message", Some(format!("'{}'", line)))
|
|
.expect("failed to emit event");
|
|
}
|
|
}
|
|
});
|
|
|
|
Ok(())
|
|
})
|
|
.run(context)
|
|
.expect("error while running tauri application");
|
|
}
|