diff options
author | Ben Morrison <ben@gbmor.dev> | 2020-05-26 23:27:58 -0400 |
---|---|---|
committer | Ben Morrison <ben@gbmor.dev> | 2020-05-26 23:54:18 -0400 |
commit | 896f987f2705d1c5152d6c0741c377e3612f048a (patch) | |
tree | f6ed5a1b861c9d3e7a2c474084bc4afb6384190a | |
parent | c3c1db696f3b04e4aef06fd2b01e436b1fe06b08 (diff) | |
download | clinte-896f987f2705d1c5152d6c0741c377e3612f048a.tar.gz |
prepopulating editor with post body when editing
-rw-r--r-- | src/ed.rs | 7 | ||||
-rw-r--r-- | src/posts.rs | 6 |
2 files changed, 9 insertions, 4 deletions
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<String, std::io::Error> { } } -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") { @@ -36,6 +36,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) .stdin(process::Stdio::inherit()) 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 { |