diff --git a/plugins/single-instance/README.md b/plugins/single-instance/README.md index 1549e20c..36f855ad 100644 --- a/plugins/single-instance/README.md +++ b/plugins/single-instance/README.md @@ -1,8 +1,55 @@ -# Tauri Plugin single-instance +![tauri-plugin-single-instance](banner.jpg) -[WIP] Ensure a single instance of your tauri app is running. +Ensure a single instance of your tauri app is running. -Platforms: -- [x] Windows -- [x] Linux -- [ ] macOS \ No newline at end of file +## Install + +There are three general methods of installation that we can recommend. + +1. Use crates.io and npm (easiest, and requires you to trust that our publishing pipeline worked) +2. Pull sources directly from Github using git tags / revision hashes (most secure) +3. Git submodule install this repo in your tauri project and then use file protocol to ingest the source (most secure, but inconvenient to use) + +Install the Core plugin by adding the following to your `Cargo.toml` file: + +`src-tauri/Cargo.toml` +```toml +[dependencies] +tauri-plugin-single-instance = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "dev" } +``` + +## Usage + +First you need to register the core plugin with Tauri: + +`src-tauri/src/main.rs` +```rust +use tauri::{Manager}; + +#[derive(Clone, serde::Serialize)] +struct Payload { + args: Vec, + cwd: String, +} + +fn main() { + tauri::Builder::default() + .plugin(auri_plugin_single_instance::init(|app, argv, cwd| { + println!("{}, {argv:?}, {cwd}", app.package_info().name); + + app.emit_all("single-instance", Payload { args: argv, cwd }).unwrap(); + })) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} +``` + +## Contributing + +PRs accepted. Please make sure to read the Contributing Guide before making a pull request. + +## License + +Code: (c) 2015 - Present - The Tauri Programme within The Commons Conservancy. + +MIT or MIT/Apache 2.0 where applicable.