Merge branch 'feature/fallback_targets' of github.com:kandrelczyk/plugins-workspace into feature/fallback_targets

pull/2624/head
Krzysztof Andrelczyk 3 months ago
commit 0630002c65

@ -1,56 +1,57 @@
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy // Copyright 2019-2023 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT // SPDX-License-Identifier: MIT
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
use tauri_plugin_updater::UpdaterExt; use tauri_plugin_updater::UpdaterExt;
fn main() { fn main() {
#[allow(unused_mut)] #[allow(unused_mut)]
let mut context = tauri::generate_context!(); let mut context = tauri::generate_context!();
tauri::Builder::default() println!("{}", tauri::__TAURI_BUNDLE_TYPE);
.plugin(tauri_plugin_updater::Builder::new().build()) tauri::Builder::default()
.setup(|app| { .plugin(tauri_plugin_updater::Builder::new().build())
let handle = app.handle().clone(); .setup(|app| {
tauri::async_runtime::spawn(async move { let handle = app.handle().clone();
let mut builder = handle.updater_builder(); tauri::async_runtime::spawn(async move {
if std::env::var("TARGET").unwrap_or_default() == "nsis" { let mut builder = handle.updater_builder();
// /D sets the default installation directory ($INSTDIR), if std::env::var("TARGET").unwrap_or_default() == "nsis" {
// overriding InstallDir and InstallDirRegKey. // /D sets the default installation directory ($INSTDIR),
// It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces. // overriding InstallDir and InstallDirRegKey.
// Only absolute paths are supported. // It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces.
// NOTE: we only need this because this is an integration test and we don't want to install the app in the programs folder // Only absolute paths are supported.
builder = builder.installer_args(vec![format!( // NOTE: we only need this because this is an integration test and we don't want to install the app in the programs folder
"/D={}", builder = builder.installer_args(vec![format!(
tauri::utils::platform::current_exe() "/D={}",
.unwrap() tauri::utils::platform::current_exe()
.parent() .unwrap()
.unwrap() .parent()
.display() .unwrap()
)]); .display()
} )]);
let updater = builder.build().unwrap(); }
let updater = builder.build().unwrap();
match updater.check().await {
Ok(Some(update)) => { match updater.check().await {
if let Err(e) = update.download_and_install(|_, _| {}, || {}).await { Ok(Some(update)) => {
println!("{e}"); if let Err(e) = update.download_and_install(|_, _| {}, || {}).await {
std::process::exit(1); println!("{e}");
} std::process::exit(1);
std::process::exit(0); }
} std::process::exit(0);
Ok(None) => { }
std::process::exit(2); Ok(None) => {
} std::process::exit(2);
Err(e) => { }
println!("{e}"); Err(e) => {
std::process::exit(1); println!("{e}");
} std::process::exit(1);
} }
}); }
Ok(()) });
}) Ok(())
.run(context) })
.expect("error while running tauri application"); .run(context)
} .expect("error while running tauri application");
}

@ -119,8 +119,11 @@ fn target_to_platforms(
update_platform: Option<String>, update_platform: Option<String>,
signature: String, signature: String,
) -> HashMap<String, PlatformUpdate> { ) -> HashMap<String, PlatformUpdate> {
let mut platforms = HashMap::new(); let mut platforms = HashMap::new();
if let Some(platform) = update_platform { if let Some(platform) = update_platform {
println!("TARGET: {}", platform.clone());
platforms.insert( platforms.insert(
platform, platform,
PlatformUpdate { PlatformUpdate {
@ -201,24 +204,60 @@ fn bundle_path(root_dir: &Path, _version: &str, v1compatible: bool) -> PathBuf {
} }
#[cfg(windows)] #[cfg(windows)]
fn bundle_paths( fn test_cases(
root_dir: &Path, root_dir: &Path,
version: &str, version: &str,
v1compatible: bool, target: String
) -> Vec<(BundleTarget, PathBuf)> { ) -> Vec<(BundleTarget, PathBuf, Option<String>, Vec<i32>)> {
vec![ vec![
( (
BundleTarget::Nsis, BundleTarget::Nsis,
root_dir.join(format!( root_dir.join(format!(
"target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe" "target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe"
)), )),
Some(target.clone()),
vec![UPDATED_EXIT_CODE]
),
(
BundleTarget::Nsis,
root_dir.join(format!(
"target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe"
)),
Some(format!("{target}-{}", BundleTarget::Nsis.name())),
vec![UPDATED_EXIT_CODE]
),
(
BundleTarget::Nsis,
root_dir.join(format!(
"target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe"
)),
None,
vec![ERROR_EXIT_CODE]
), ),
( (
BundleTarget::Msi, BundleTarget::Msi,
root_dir.join(format!( root_dir.join(format!(
"target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi" "target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi"
)), )),
Some(target.clone()),
vec![UPDATED_EXIT_CODE]
), ),
(
BundleTarget::Msi,
root_dir.join(format!(
"target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi"
)),
Some(format!("{target}-{}", BundleTarget::Msi.name())),
vec![UPDATED_EXIT_CODE]
),
(
BundleTarget::Msi,
root_dir.join(format!(
"target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi"
)),
None,
vec![ERROR_EXIT_CODE]
)
] ]
} }

Loading…
Cancel
Save