@ -13,7 +13,9 @@
use auto_launch ::{ AutoLaunch , AutoLaunchBuilder } ;
use serde ::{ ser ::Serializer , Serialize } ;
use tauri ::{
command , plugin ::{ Builder as PluginBuilder , TauriPlugin } , AppHandle , Manager , Runtime , State
command ,
plugin ::{ Builder as PluginBuilder , TauriPlugin } ,
AppHandle , Manager , Runtime , State ,
} ;
use std ::env ::current_exe ;
@ -27,16 +29,16 @@ pub enum MacosLauncher {
AppleScript ,
}
#[ derive(De bug, Clone )]
#[ derive(De fault )]
pub enum PreferedName {
PackageInfoName ,
PackageInfoCrateName ,
ConfigIdentifier ,
ConfigProductName ,
Custom ( String )
#[ default ]
AppName ,
CrateName ,
Identifier ,
ProductName ,
Custom ( String ) ,
}
#[ derive(Debug, thiserror::Error) ]
pub enum Error {
#[ error(transparent) ]
@ -54,32 +56,28 @@ impl Serialize for Error {
}
}
impl Default for PreferedName {
fn default ( ) -> Self {
PreferedName ::PackageInfoName
}
}
impl PreferedName {
pub fn get_value < R : Runtime > ( & self , app : & AppHandle < R > ) -> String {
match self {
PreferedName ::PackageInfoName = > {
app . package_info ( ) . name . to_string ( )
} ,
PreferedName ::PackageInfoCrateName = > {
app . package_info ( ) . crate_name . to_string ( )
} ,
PreferedName ::ConfigIdentifier = > {
app . config ( ) . identifier . to_string ( )
} ,
PreferedName ::ConfigProductName = > {
app . config ( ) . product_name . clone ( ) . unwrap_or ( "TauriAPP" . to_string ( ) )
} ,
PreferedName ::AppName = > app . package_info ( ) . name . to_string ( ) ,
PreferedName ::CrateName = > app . package_info ( ) . crate_name . to_string ( ) ,
PreferedName ::Identifier = > app . config ( ) . identifier . to_string ( ) ,
PreferedName ::ProductName = > app
. config ( )
. product_name
. clone ( )
. unwrap_or ( "TauriAPP" . to_string ( ) ) ,
PreferedName ::Custom ( s ) = > s . clone ( ) ,
}
}
}
impl < S : Into < String > > From < S > for PreferedName {
fn from ( name : S ) -> Self {
PreferedName ::Custom ( name . into ( ) )
}
}
pub struct AutoLaunchManager ( AutoLaunch ) ;
impl AutoLaunchManager {
@ -137,7 +135,7 @@ pub struct Builder {
#[ cfg(target_os = " macos " ) ]
macos_launcher : MacosLauncher ,
args : Vec < String > ,
prefered _name: PreferedName ,
ap p_name: PreferedName ,
}
impl Builder {
@ -189,23 +187,23 @@ impl Builder {
self
}
/// Sets the preferred name to be used for the auto start entry.
/// Sets the app name to be used for the auto start entry.
///
/// ## Examples
///
/// ```no_run
/// Builder::new()
/// . prefered_name(PreferedName::PackageInfo Name)
/// . app_name(PreferedName::App Name)
/// .build();
/// ```
///
/// ```no_run
/// Builder::new()
/// . prefered_name(PreferedName::Custom("My Custom Name".into() ))
/// . app_name("My Custom Name" ))
/// .build();
/// ```
pub fn prefered _name( mut self , prefered _name: PreferedName) -> Self {
self . prefered_name = prefered_name ;
pub fn ap p_name( mut self , ap p_name: impl Into < PreferedName> ) -> Self {
self . app_name = app_name . into ( ) ;
self
}
@ -215,7 +213,7 @@ impl Builder {
. setup ( move | app , _api | {
let mut builder = AutoLaunchBuilder ::new ( ) ;
let prefered_name = self . prefered _name. get_value ( & app ) ;
let prefered_name = self . ap p_name. get_value ( app ) ;
builder . set_app_name ( & prefered_name ) ;
builder . set_args ( & self . args ) ;
@ -274,7 +272,6 @@ impl Builder {
pub fn init < R : Runtime > (
#[ allow(unused) ] macos_launcher : MacosLauncher ,
args : Option < Vec < & ' static str > > ,
prefered_name : Option < PreferedName >
) -> TauriPlugin < R > {
let mut builder = Builder ::new ( ) ;
if let Some ( args ) = args {
@ -284,6 +281,5 @@ pub fn init<R: Runtime>(
{
builder = builder . macos_launcher ( macos_launcher ) ;
}
builder = builder . prefered_name ( prefered_name . unwrap_or_default ( ) ) ;
builder . build ( )
}