treeflow 0.2.1

CLI tool for simplified Git worktree management to speed up switching contexts when working collaboratively.
Documentation
use std::env;
use std::path::PathBuf;
use crate::utils::errors::CustomError;
use crate::core::project::Project;
use crate::utils::git::{delete_branch, remove_worktree};
use crate::utils::Return;

pub struct WorkItem {
    pub name: String,
    pub path: PathBuf,
}

impl WorkItem {
    pub fn finish(&self, project: Project, force: bool) -> Result<Return, CustomError> {
        let _ = remove_worktree(&self.name, force)?;
        env::set_current_dir(&project.repository)?; // The current directory is removed by remove_worktree which causes branch deletion to fail
        let _ = delete_branch(&self.name, force)?;
        Ok(Return::Cd {
            path: project.repository,
        })
    }
}