git_clone_canonical/app.rs
1use crate::{clone, get_repo_path, Options, Result};
2
3pub fn run() {
4 if let Some(error) = run_result().err() {
5 error.exit();
6 }
7}
8
9pub fn run_result() -> Result<()> {
10 let Options {
11 basedir,
12 show_path,
13 url,
14 } = Options::try_parse()?;
15
16 if show_path {
17 println!("{}", get_repo_path(basedir, &url).display());
18 Ok(())
19 } else {
20 clone(basedir, url)
21 }
22}