Implement commit_message()
This commit is contained in:
parent
17805a0f1e
commit
47c3d0e483
1 changed files with 63 additions and 5 deletions
|
@ -9,15 +9,73 @@ use vcs::git::result::Result;
|
||||||
use vcs::git::action::StoreAction;
|
use vcs::git::action::StoreAction;
|
||||||
|
|
||||||
pub fn commit_interactive(config: &Value) -> bool {
|
pub fn commit_interactive(config: &Value) -> bool {
|
||||||
warn!("Interactive committing not yet supported, using dummy commit message");
|
match config.lookup("commit.interactive") {
|
||||||
|
Some(&Value::Boolean(b)) => b,
|
||||||
|
Some(_) => {
|
||||||
|
warn!("Configuration error, 'store.hooks.stdhook_git_update.commit.interactive' must be a Boolean.");
|
||||||
|
warn!("Defaulting to commit.interactive = false");
|
||||||
false
|
false
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
warn!("Unavailable configuration for");
|
||||||
|
warn!("\t'store.hooks.stdhook_git_update.commit.interactive'");
|
||||||
|
warn!("Defaulting to false");
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn commit_message(config: &Value, action: StoreAction) -> Result<String> {
|
fn commit_with_editor(config: &Value) -> bool {
|
||||||
|
match config.lookup("commit.interactive_editor") {
|
||||||
|
Some(&Value::Boolean(b)) => b,
|
||||||
|
Some(_) => {
|
||||||
|
warn!("Configuration error, 'store.hooks.stdhook_git_update.commit.interactive_editor' must be a Boolean.");
|
||||||
|
warn!("Defaulting to commit.interactive_editor = false");
|
||||||
|
false
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
warn!("Unavailable configuration for");
|
||||||
|
warn!("\t'store.hooks.stdhook_git_update.commit.interactive_editor'");
|
||||||
|
warn!("Defaulting to false");
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn commit_default_msg<'a>(config: &'a Value) -> &'a str {
|
||||||
|
match config.lookup("commit.message") {
|
||||||
|
Some(&Value::String(ref b)) => b,
|
||||||
|
Some(_) => {
|
||||||
|
warn!("Configuration error, 'store.hooks.stdhook_git_update.commit.message' must be a String.");
|
||||||
|
warn!("Defaulting to commit.message = 'Update'");
|
||||||
|
"Update"
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
warn!("Unavailable configuration for");
|
||||||
|
warn!("\t'store.hooks.stdhook_git_update.commit.message'");
|
||||||
|
warn!("Defaulting to commit.message = 'Update'");
|
||||||
|
"Update"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn commit_template() -> &'static str {
|
||||||
|
"Commit template"
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn commit_message(repo: &Repository, config: &Value, action: StoreAction) -> Result<String> {
|
||||||
|
use libimaginteraction::ask::ask_string;
|
||||||
|
use libimagutil::edit::edit_in_tmpfile_with_command;
|
||||||
|
use std::process::Command;
|
||||||
|
|
||||||
if commit_interactive(config) {
|
if commit_interactive(config) {
|
||||||
|
if commit_with_editor(config) {
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
} else {
|
} else {
|
||||||
Ok(String::from("Dummy commit"))
|
unimplemented!()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Ok(String::from(commit_default_msg(config)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue