194c44c
use std::path::PathBuf;
#[derive(Clone, Debug)]
pub enum GitOperation {
UploadPack { bare: PathBuf },
ReceivePack { bare: PathBuf },
UploadArchive { bare: PathBuf },
}
impl GitOperation {
pub fn bare(&self) -> &PathBuf {
match self {
Self::UploadPack { bare }
| Self::ReceivePack { bare }
| Self::UploadArchive { bare } => bare,
}
}
pub fn is_write(&self) -> bool {
matches!(self, Self::ReceivePack { .. })
}
pub fn is_upload_archive(&self) -> bool {
matches!(self, Self::UploadArchive { .. })
}
pub fn service_arg(&self) -> &'static str {
match self {
Self::UploadPack { .. } => "upload-pack",
Self::ReceivePack { .. } => "receive-pack",
Self::UploadArchive { .. } => "upload-archive",
}
}
}