#[derive(Debug, thiserror::Error)]
pub(crate) enum Error {
#[error("failed to make directories: {path} ({err})")]
MakeDir { path: String, err: std::io::Error },
#[error("failed to remove directories: {path} ({err})")]
RemoveDir { path: String, err: std::io::Error },
#[error("failed to strip prefix {prefix} from {path} ({err})")]
StripPrefix {
prefix: String,
path: String,
err: std::path::StripPrefixError,
},
#[error("no metadata ({0})")]
Metadata(String),
#[error("no modified time ({0})")]
ModifiedTime(String),
#[error("`{0}` failed - review the output & try again")]
Command(String),
#[error(transparent)]
IoError(#[from] std::io::Error),
}