2022-09-02 23:03:57 +00:00
|
|
|
#[derive(thiserror::Error, Debug)]
|
|
|
|
pub enum HarmonicError {
|
2022-09-09 18:43:35 +00:00
|
|
|
#[error("Reqest error")]
|
|
|
|
Reqwest(#[from] reqwest::Error),
|
|
|
|
#[error("Unarchiving error")]
|
|
|
|
Unarchive(std::io::Error),
|
|
|
|
#[error("Getting temporary directory")]
|
|
|
|
TempDir(std::io::Error),
|
|
|
|
#[error("Glob pattern error")]
|
|
|
|
GlobPatternError(#[from] glob::PatternError),
|
|
|
|
#[error("Glob globbing error")]
|
|
|
|
GlobGlobError(#[from] glob::GlobError),
|
|
|
|
#[error("Symlinking from `{0}` to `{1}`")]
|
|
|
|
Symlink(std::path::PathBuf, std::path::PathBuf, std::io::Error),
|
|
|
|
#[error("Renaming from `{0}` to `{1}`")]
|
|
|
|
Rename(std::path::PathBuf, std::path::PathBuf, std::io::Error),
|
|
|
|
#[error("Unarchived Nix store did not appear to include a `nss-cacert` location")]
|
2022-09-08 00:13:06 +00:00
|
|
|
NoNssCacert,
|
2022-09-09 18:43:35 +00:00
|
|
|
#[error("No supported init system found")]
|
2022-09-08 00:13:06 +00:00
|
|
|
InitNotSupported,
|
2022-09-09 18:43:35 +00:00
|
|
|
#[error("Creating directory `{0}`")]
|
|
|
|
CreateDirectory(std::path::PathBuf, std::io::Error),
|
|
|
|
#[error("Walking directory `{0}`")]
|
|
|
|
WalkDirectory(std::path::PathBuf, walkdir::Error),
|
|
|
|
#[error("Setting permissions `{0}`")]
|
|
|
|
SetPermissions(std::path::PathBuf, std::io::Error),
|
2022-09-08 00:13:06 +00:00
|
|
|
#[error("Command `{0}` failed to execute")]
|
|
|
|
CommandFailedExec(String, std::io::Error),
|
|
|
|
// TODO(@Hoverbear): This should capture the stdout.
|
|
|
|
#[error("Command `{0}` did not to return a success status")]
|
|
|
|
CommandFailedStatus(String),
|
|
|
|
#[error("Join error")]
|
|
|
|
JoinError(#[from] tokio::task::JoinError),
|
2022-09-09 18:43:35 +00:00
|
|
|
#[error("Opening file `{0}` for writing")]
|
|
|
|
OpenFile(std::path::PathBuf, std::io::Error),
|
|
|
|
#[error("Opening file `{0}` for writing")]
|
|
|
|
WriteFile(std::path::PathBuf, std::io::Error),
|
|
|
|
#[error("Seeking file `{0}` for writing")]
|
|
|
|
SeekFile(std::path::PathBuf, std::io::Error),
|
|
|
|
#[error("Changing ownership of `{0}`")]
|
|
|
|
Chown(std::path::PathBuf, nix::errno::Errno),
|
|
|
|
#[error("Getting uid for user `{0}`")]
|
|
|
|
UserId(String, nix::errno::Errno),
|
|
|
|
#[error("Getting user `{0}`")]
|
|
|
|
NoUser(String),
|
|
|
|
#[error("Getting gid for group `{0}`")]
|
|
|
|
GroupId(String, nix::errno::Errno),
|
|
|
|
#[error("Getting group `{0}`")]
|
|
|
|
NoGroup(String),
|
2022-09-02 23:03:57 +00:00
|
|
|
}
|