git_explore/manage/
push.rs

1use std::process;
2
3use crate::*;
4
5pub fn git_push(config: &Config) -> Result<()> {
6    config.git_repos.iter().for_each(|git| {
7        process::Command::new("git")
8            .current_dir(git)
9            .args(vec!["push"])
10            .spawn()
11            .unwrap_or_else(|_| panic!("Failed to execute command git push {}", git));
12    });
13    Ok(())
14}
15
16pub fn push(opt: &PushOption) -> Result<()> {
17    let config = Config::get(opt.base.base_dir.to_config_path().to_str().unwrap());
18
19    git_push(&config).unwrap();
20
21    Ok(())
22}
23
24#[test]
25pub fn run_push() {
26    use crate::*;
27    let cli = RepoCli::parse_from([KEY_COMMAND, "push", "-d", KEY_BASEPATH]);
28    if let Some(Command::Push(mut opt)) = cli.command {
29        push(&mut opt).unwrap();
30    }
31}