From 896f987f2705d1c5152d6c0741c377e3612f048a Mon Sep 17 00:00:00 2001 From: Ben Morrison Date: Tue, 26 May 2020 23:27:58 -0400 Subject: prepopulating editor with post body when editing --- src/ed.rs | 7 ++++++- src/posts.rs | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/ed.rs b/src/ed.rs index 095fd9a..7d52909 100644 --- a/src/ed.rs +++ b/src/ed.rs @@ -16,7 +16,7 @@ fn create_tmp_file<'a>() -> Result { } } -pub fn call() -> String { +pub fn call(body: &str) -> String { // If they don't have $EDITOR set, just default to nano // instead of assuming vim or emacs. let editor = match env::var("EDITOR") { @@ -35,6 +35,11 @@ pub fn call() -> String { let tmp_loc = error::helper(create_tmp_file(), "Couldn't create tempfile"); + error::helper( + fs::write(&tmp_loc, body), + "Couldn't populate tempfile with message", + ); + error::helper( process::Command::new(editor) .arg(&tmp_loc) diff --git a/src/posts.rs b/src/posts.rs index f625a90..76a5187 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -51,7 +51,7 @@ pub fn create(db: &db::Conn) -> error::Result<()> { println!(); - let body_raw = str_to_utf8(&ed::call()); + let body_raw = str_to_utf8(&ed::call("")); let body = if body_raw.len() > 500 { &body_raw[..500] } else { @@ -136,12 +136,12 @@ pub fn update_handler(db: &db::Conn, id: u32) -> error::Result<()> { println!("Updating post {}", id_num_in); println!(); - println!("Title: {}\n\nBody: {}", row[0], row[2]); + println!("Current Title: {}", &row[0]); println!(); println!("Enter new title:"); io::stdin().read_line(&mut new_title)?; - let body_raw = str_to_utf8(&ed::call()); + let body_raw = str_to_utf8(&ed::call(&row[2])); let body = if body_raw.len() > 500 { &body_raw[..500] } else { -- cgit 1.4.1-2-gfad0