12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- // Copyright 2019-2024 Tauri Programme within The Commons Conservancy
- // SPDX-License-Identifier: Apache-2.0
- // SPDX-License-Identifier: MIT
- use anyhow::Result;
- use clap::{Parser, Subcommand};
- use crate::interface::{AppInterface, AppSettings, Interface};
- #[derive(Debug, Parser)]
- #[clap(about = "Manage or create permissions for your app or plugin")]
- pub struct Cli {
- #[clap(subcommand)]
- command: Commands,
- }
- #[derive(Subcommand, Debug)]
- enum Commands {
- /// Print the default Upgrade Code used by MSI installer derived from productName.
- WixUpgradeCode,
- }
- pub fn command(cli: Cli) -> Result<()> {
- match cli.command {
- Commands::WixUpgradeCode => wix_upgrade_code(),
- }
- }
- // NOTE: if this is ever changed, make sure to also update Wix upgrade code generation in tauri-bundler
- fn wix_upgrade_code() -> Result<()> {
- crate::helpers::app_paths::resolve();
- let target = tauri_utils::platform::Target::Windows;
- let config = crate::helpers::config::get(target, None)?;
- let interface = AppInterface::new(config.lock().unwrap().as_ref().unwrap(), None)?;
- let product_name = interface.app_settings().get_package_settings().product_name;
- let upgrade_code = uuid::Uuid::new_v5(
- &uuid::Uuid::NAMESPACE_DNS,
- format!("{product_name}.exe.app.x64").as_bytes(),
- )
- .to_string();
- log::info!("Default WiX Upgrade Code, derived from {product_name}: {upgrade_code}");
- if let Some(code) = config.lock().unwrap().as_ref().and_then(|c| {
- c.bundle
- .windows
- .wix
- .as_ref()
- .and_then(|wix| wix.upgrade_code)
- }) {
- log::info!("Application Upgrade Code override: {code}");
- }
- Ok(())
- }
|