Add config options for patch message templates

[?]
Feb 20, 2021, 5:10 PM
TFPETWTVADLG2DL7WERHJPGMJVOY4WOKCRWB3NZ3YOOQ4CVAUHBAC

Dependencies

  • [2] 5BB266P6 Optional colours in the global config file
  • [3] G6S6PWZE Do not touch the channel if this is a partial record
  • [4] 3MHUNYER Changing --amend flag to respect -m flag
  • [5] DJYHARZ7 Skipping old files when recording
  • [6] OU243LAB Support for staging
  • [7] I52XSRUH Massive cleanup, and simplification
  • [8] WZVCLZKY address clippy lints
  • [9] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).

Change contents

  • edit in pijul/src/config.rs at line 2
    [3.89898]
    [3.89898]
    use std::path::PathBuf;
  • edit in pijul/src/config.rs at line 14
    [2.63]
    [2.63]
    pub template: Option<Templates>,
  • edit in pijul/src/config.rs at line 25
    [2.251]
    [3.90002]
    }
    #[derive(Debug, Serialize, Deserialize)]
    pub struct Templates {
    pub message: Option<PathBuf>,
    pub description: Option<PathBuf>,
  • replacement in pijul/src/commands/record.rs at line 107
    [3.104017][3.104017:104043]()
    self.header()
    [3.104017]
    [3.104043]
    self.header()?
  • replacement in pijul/src/commands/record.rs at line 175
    [3.105380][3.105380:105419]()
    fn header(&self) -> ChangeHeader {
    [3.105380]
    [3.105419]
    fn header(&self) -> Result<ChangeHeader, anyhow::Error> {
    let config = crate::config::Global::load();
  • replacement in pijul/src/commands/record.rs at line 183
    [3.105630][3.105630:105729]()
    } else if let Ok(global) = crate::config::Global::load() {
    vec![global.author]
    [3.105630]
    [3.105729]
    } else if let Ok(global) = config.as_ref() {
    vec![global.author.clone()]
  • replacement in pijul/src/commands/record.rs at line 188
    [3.105780][3.105780:105803](),[3.105803][3.605:676]()
    ChangeHeader {
    message: self.message.clone().unwrap_or_else(String::new),
    [3.105780]
    [3.105871]
    let templates = config.as_ref().ok().and_then(|cfg| cfg.template.as_ref());
    let message = if let Some(message) = &self.message {
    message.clone()
    } else if let Some(message_file) = templates.and_then(|t| t.message.as_ref()) {
    match std::fs::read_to_string(message_file) {
    Ok(m) => m,
    Err(e) => bail!("Could not read message template: {:?}: {}", message_file, e),
    }
    } else {
    String::new()
    };
    let description = if let Some(descr_file) = templates.and_then(|t| t.description.as_ref()) {
    match std::fs::read_to_string(descr_file) {
    Ok(d) => Some(d),
    Err(e) => bail!(
    "Could not read description template: {:?}: {}",
    descr_file,
    e
    ),
    }
    } else {
    None
    };
    let header = ChangeHeader {
    message,
  • replacement in pijul/src/commands/record.rs at line 214
    [3.105892][3.105892:105923]()
    description: None,
    [3.105892]
    [3.105923]
    description,
  • replacement in pijul/src/commands/record.rs at line 220
    [3.106144][3.106144:106154]()
    }
    [3.106144]
    [3.106154]
    };
    Ok(header)