use buildpack::executable::ExecutablePath;
pub mod args;
pub mod buildpack;
pub mod cmd;
pub mod error;
#[derive(Debug, Clone)]
pub enum ExecutableType {
Unknown(String),
Detector,
Analyzer,
Restorer,
Builder,
Exporter,
Creator,
Extender,
Rebaster,
}
impl ExecutableType {
pub fn from_executing_path() -> error::Result<Self> {
let exec_path = ExecutablePath::from_execuing_path()?;
Ok(Self::from_executable_name(&exec_path.executable_name()?))
}
pub fn from_executable_name(name: &str) -> Self {
match name {
"detector" => Self::Detector,
"analyzer" => Self::Analyzer,
"restorer" => Self::Restorer,
"builder" => Self::Builder,
"exporter" => Self::Exporter,
"creator" => Self::Creator,
"extender" => Self::Extender,
"rebaser" => Self::Rebaster,
unknown => Self::Unknown(unknown.to_string()),
}
}
}