feat: add custom erorr
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -846,6 +846,7 @@ dependencies = [
|
||||
"lazy_static",
|
||||
"log",
|
||||
"pretty_env_logger",
|
||||
"quick-error",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
||||
@@ -17,3 +17,4 @@ serde_json = "1.0"
|
||||
lazy_static = "1.4.0"
|
||||
hex = "0.4.2"
|
||||
sha2 = "0.9.1"
|
||||
quick-error = "1.2.3"
|
||||
|
||||
@@ -11,8 +11,10 @@ impl CommandDefault {
|
||||
}
|
||||
|
||||
pub fn run(_arg_matches: &ArgMatches) -> CommandError {
|
||||
information!("Git path : {:?}", crate::git::get_git_base_path());
|
||||
information!("Git status: {}", crate::git::check_git_status());
|
||||
information!("Git hash : {}", crate::git::get_git_hash().unwrap_or_else(|| "<none>".to_owned()));
|
||||
information!("SHA256 R : {}", hex::encode(crate::util::digest_file_sha256("README.md").unwrap()));
|
||||
error!("Default command is not implemented!");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ pub fn get_git_hash() -> Option<String> {
|
||||
warn!("Error in get utf8 git rev-parse HEAD: {}", e);
|
||||
None
|
||||
},
|
||||
Ok(stdout) => Some(stdout),
|
||||
Ok(stdout) => Some(stdout.trim().into()),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
#[macro_use] extern crate log;
|
||||
#[macro_use] extern crate quick_error;
|
||||
//#[macro_use] extern crate lazy_static;
|
||||
use log::LevelFilter;
|
||||
use clap::{ App, ArgMatches };
|
||||
|
||||
19
src/util.rs
19
src/util.rs
@@ -1,5 +1,24 @@
|
||||
use std::fs;
|
||||
use sha2::{ Digest, Sha256 };
|
||||
|
||||
quick_error! {
|
||||
#[derive(Debug)]
|
||||
pub enum DigestError {
|
||||
FileOpenError(f: String, m: String) {
|
||||
display("Read file: {}, failed: {}", f, m)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// pub type XResult<T> = Result<T, Box<dyn std::error::Error>>;
|
||||
|
||||
pub fn digest_file_sha256(file: &str) -> Result<Vec<u8>, DigestError> {
|
||||
let bs = match fs::read(file) {
|
||||
Ok(bs) => bs, Err(e) => return Err(DigestError::FileOpenError(file.into(), e.to_string())),
|
||||
};
|
||||
Ok(digest_sha256(&bs))
|
||||
}
|
||||
|
||||
pub fn digest_sha256(bs: &[u8]) -> Vec<u8> {
|
||||
let mut sha256 = Sha256::new();
|
||||
sha256.update(bs);
|
||||
|
||||
Reference in New Issue
Block a user