use std::env;
use std::path::PathBuf;
mod git_actions;
mod hg_actions;
mod revision_shortcut;
mod select;
mod tui;
mod version_control_actions;
use git_actions::GitActions;
use hg_actions::HgActions;
use revision_shortcut::RevisionShortcut;
fn main() {
ctrlc::set_handler(move || {}).unwrap();
let current_dir_path = env::current_dir().unwrap();
let current_dir = current_dir_path.to_str().unwrap();
let revision_shortcut = RevisionShortcut::default();
if subdir_exists(¤t_dir_path, ".git") {
let mut actions = GitActions {
current_dir: ¤t_dir,
revision_shortcut: revision_shortcut,
};
tui::show_tui(¤t_dir, &mut actions);
} else if subdir_exists(¤t_dir_path, ".hg") {
let mut actions = HgActions {
current_dir: ¤t_dir,
revision_shortcut: revision_shortcut,
};
tui::show_tui(¤t_dir, &mut actions);
} else {
println!("no repository found");
}
}
fn subdir_exists(basedir: &PathBuf, subdir: &str) -> bool {
let mut path = basedir.clone();
path.push(subdir);
path.exists()
}