diff --git a/src/main.rs b/src/main.rs index b4a35ab..ae803ed 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,12 +30,12 @@ fn main() -> Result<()> { let mut config: ConfigManager = ConfigManager::new(config_root, search_path)?; - let backend = TermionBackend::new(io::stdout().into_alternate_screen()?); -// let backend = TermionBackend::new(io::stdout()); // used for debugging +// let backend = TermionBackend::new(io::stdout().into_alternate_screen()?); + let backend = TermionBackend::new(io::stdout()); // used for debugging let mut term = Terminal::new(backend)?; loop { - term.clear()?; +// term.clear()?; let mut host = input::get_host(&mut config)?; diff --git a/src/platform.rs b/src/platform.rs index 9b15687..49177b4 100644 --- a/src/platform.rs +++ b/src/platform.rs @@ -1,6 +1,6 @@ use anyhow::Result; use crate::{ ConfigManager, config::Host, input }; -use dialoguer::{ Select, Input, Confirm, theme::ColorfulTheme }; +use dialoguer::{ Select, Input, Confirm, Editor, theme::ColorfulTheme }; use serde::{ Serialize, Deserialize }; use ssh_key::PrivateKey; use std::fs; @@ -166,6 +166,9 @@ Host {host} } 1 => { // Edit config // TODO: replace this with configuer::editor +// if let Some(cnf) = Editor::new().edit(fs::read_to_string(config.config_dir.join("config"))?.as_str())? { +// fs::write(config.config_dir.join("config"), cnf)?; +// } let editor = std::env::var("EDITOR").expect("EDITOR is not set"); std::process::Command::new(editor) .arg(host.config.to_owned()) @@ -184,8 +187,12 @@ Host {host} .interact()?; if confirm { + let mut conf = std::path::PathBuf::from(host.config.to_owned()); + conf.pop(); + config.configs.remove(host); config.save(); + fs::remove_dir_all(conf)?; break; } } // Back