diff options
Diffstat (limited to 'ui/backend/src/run')
| -rw-r--r-- | ui/backend/src/run/migrations.rs | 13 | ||||
| -rw-r--r-- | ui/backend/src/run/mod.rs | 2 | ||||
| -rw-r--r-- | ui/backend/src/run/pty.rs | 103 |
3 files changed, 0 insertions, 118 deletions
diff --git a/ui/backend/src/run/migrations.rs b/ui/backend/src/run/migrations.rs deleted file mode 100644 index 3516e62a..00000000 --- a/ui/backend/src/run/migrations.rs +++ /dev/null @@ -1,13 +0,0 @@ -use lazy_static::lazy_static; -use tauri_plugin_sql::{Builder, Migration, MigrationKind}; - -pub fn migrations() -> Vec<Migration> { - vec![ - Migration { - version: 1, - description: "create_initial_tables", - sql: "CREATE TABLE runbooks(id string PRIMARY KEY, name TEXT, content TEXT, created bigint, updated bigint);", - kind: MigrationKind::Up, - } - ] -} diff --git a/ui/backend/src/run/mod.rs b/ui/backend/src/run/mod.rs deleted file mode 100644 index a7a28497..00000000 --- a/ui/backend/src/run/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod migrations; -pub mod pty; diff --git a/ui/backend/src/run/pty.rs b/ui/backend/src/run/pty.rs deleted file mode 100644 index 72ca98d2..00000000 --- a/ui/backend/src/run/pty.rs +++ /dev/null @@ -1,103 +0,0 @@ -use eyre::{Result, WrapErr}; -use std::io::BufRead; -use std::path::PathBuf; - -use crate::state::AtuinState; -use tauri::{Emitter, Manager, State}; - -use atuin_client::{database::Sqlite, record::sqlite_store::SqliteStore, settings::Settings}; - -#[tauri::command] -pub async fn pty_open<'a>( - app: tauri::AppHandle, - state: State<'a, AtuinState>, - cwd: Option<String>, -) -> Result<uuid::Uuid, String> { - let id = uuid::Uuid::new_v4(); - - let cwd = cwd.map(|c| shellexpand::tilde(c.as_str()).to_string()); - let pty = crate::pty::Pty::open(24, 80, cwd).await.unwrap(); - - let reader = pty.reader.clone(); - - tauri::async_runtime::spawn_blocking(move || loop { - let mut buf = [0u8; 512]; - - match reader.lock().unwrap().read(&mut buf) { - // EOF - Ok(0) => { - println!("reader loop hit eof"); - break; - } - - Ok(n) => { - println!("read {n} bytes"); - - // TODO: sort inevitable encoding issues - let out = String::from_utf8_lossy(&buf).to_string(); - let out = out.trim_matches(char::from(0)); - let channel = format!("pty-{id}"); - - app.emit(channel.as_str(), out).unwrap(); - } - - Err(e) => { - println!("failed to read: {e}"); - break; - } - } - }); - - state.pty_sessions.write().await.insert(id, pty); - - Ok(id) -} - -#[tauri::command] -pub(crate) async fn pty_write( - pid: uuid::Uuid, - data: String, - state: tauri::State<'_, AtuinState>, -) -> Result<(), String> { - let sessions = state.pty_sessions.read().await; - let pty = sessions.get(&pid).ok_or("Pty not found")?; - - let bytes = data.as_bytes().to_vec(); - pty.send_bytes(bytes.into()) - .await - .map_err(|e| e.to_string())?; - Ok(()) -} - -#[tauri::command] -pub(crate) async fn pty_resize( - pid: uuid::Uuid, - rows: u16, - cols: u16, - state: tauri::State<'_, AtuinState>, -) -> Result<(), String> { - let sessions = state.pty_sessions.read().await; - let pty = sessions.get(&pid).ok_or("Pty not found")?; - - pty.resize(rows, cols).await.map_err(|e| e.to_string())?; - - Ok(()) -} - -#[tauri::command] -pub(crate) async fn pty_kill( - pid: uuid::Uuid, - state: tauri::State<'_, AtuinState>, -) -> Result<(), String> { - let pty = state.pty_sessions.write().await.remove(&pid); - - match pty { - Some(pty) => { - pty.kill_child().await.map_err(|e| e.to_string())?; - println!("RIP {pid:?}"); - } - None => {} - } - - Ok(()) -} |
