diff options
| author | Ellie Huxtable <ellie@atuin.sh> | 2024-07-08 11:17:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-08 11:17:47 +0100 |
| commit | 5b384487331eaf08031dfe438bb2affa31aafcbb (patch) | |
| tree | 51904c3df8c54cbc5b7aa5832a5bae49d57f7141 /ui/backend/src/main.rs | |
| parent | feat(bash/blesh): hook into BLE_ONLOAD to resolve loading order issue (#2234) (diff) | |
| download | atuin-5b384487331eaf08031dfe438bb2affa31aafcbb.zip | |
feat(gui): runbooks that run (#2233)
* add initial runbooks frontend
* fix buttons, scroll, add shell support to editor
* work
* some tweaks
* wip - run crate
* functioning executable blocks
* handle resizing, killing ptys
* clear properly on stop
* move terminal to its own component, handle lifecycle better
* fix all build issues
* ffs codespelll
* update lockfile
* clippy is needy once more
* only build pty stuff on mac/linux
* vendor pty handling into desktop
* update lockfile
Diffstat (limited to 'ui/backend/src/main.rs')
| -rw-r--r-- | ui/backend/src/main.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/ui/backend/src/main.rs b/ui/backend/src/main.rs index 2ba67e50..7adbbbe5 100644 --- a/ui/backend/src/main.rs +++ b/ui/backend/src/main.rs @@ -1,6 +1,8 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] +use tauri::State; + use std::path::PathBuf; use tauri::{AppHandle, Manager}; @@ -9,6 +11,9 @@ use time::format_description::well_known::Rfc3339; mod db; mod dotfiles; mod install; +mod pty; +mod run; +mod state; mod store; use atuin_client::settings::Settings; @@ -168,7 +173,7 @@ async fn home_info() -> Result<HomeInfo, String> { } // Match the format that the frontend library we use expects -// All the processing in Rust, not JS. +// All the processing in Rust, not JSunwrap. // Faaaassssssst af ⚡️🦀 #[derive(Debug, serde::Serialize)] pub struct HistoryCalendarDay { @@ -215,6 +220,19 @@ async fn history_calendar() -> Result<Vec<HistoryCalendarDay>, String> { Ok(ret) } +#[tauri::command] +async fn prefix_search(query: &str) -> Result<Vec<String>, String> { + let settings = Settings::new().map_err(|e| e.to_string())?; + + let db_path = PathBuf::from(settings.db_path.as_str()); + let db = HistoryDB::new(db_path, settings.local_timeout).await?; + + let history = db.prefix_search(query).await?; + let commands = history.into_iter().map(|h| h.command).collect(); + + Ok(commands) +} + fn show_window(app: &AppHandle) { let windows = app.webview_windows(); @@ -228,9 +246,11 @@ fn show_window(app: &AppHandle) { fn main() { tauri::Builder::default() + .plugin(tauri_plugin_shell::init()) .invoke_handler(tauri::generate_handler