diff --git a/src/db.rs b/src/db.rs index c1cfc4b..5eb8f35 100644 --- a/src/db.rs +++ b/src/db.rs @@ -32,9 +32,6 @@ lazy_static! { FOREIGN KEY(id) REFERENCES items(id) ON DELETE CASCADE, PRIMARY KEY(id, name));" ), - M::up( - "ALTER TABLE items ALTER COLUMN compression SET DEFAULT 'none';" - ), M::up( "ALTER TABLE items ADD COLUMN digest_type TEXT NOT NULL DEFAULT 'none';" ), @@ -51,7 +48,7 @@ pub struct Item { pub size: Option, pub compression: String, pub digest_type: String, - pub digest_value: String, + pub digest_value: Option, } #[derive(Debug, Clone)] diff --git a/src/modes/common.rs b/src/modes/common.rs index 7fe520f..49c406f 100644 --- a/src/modes/common.rs +++ b/src/modes/common.rs @@ -53,6 +53,8 @@ pub enum ColumnType { Time, Size, Compression, + DigestType, + DigestValue, FileSize, FilePath, Tags, diff --git a/src/modes/list.rs b/src/modes/list.rs index ff973d5..6026222 100644 --- a/src/modes/list.rs +++ b/src/modes/list.rs @@ -142,6 +142,17 @@ pub fn mode_list( ColumnType::Compression => { Cell::new(&string_column(item.compression.to_string(), column_width)) } + ColumnType::DigestType => { + Cell::new(&string_column(item.digest_type.to_string(), column_width)) + } + ColumnType::DigestValue => { + match item.digest_value { + Some(ref value) => Cell::new(&string_column(value.to_string(), column_width)), + None => Cell::new("Missing") + .with_style(Attr::ForegroundColor(color::RED)) + .with_style(Attr::Bold), + } + } ColumnType::FileSize => match item_path.metadata() { Ok(metadata) => Cell::new_align( &size_column( @@ -152,8 +163,8 @@ pub fn mode_list( Alignment::RIGHT, ), Err(_) => Cell::new_align("Missing", Alignment::RIGHT) - .with_style(Attr::ForegroundColor(color::RED)) - .with_style(Attr::Bold), + .with_style(Attr::ForegroundColor(color::RED)) + .with_style(Attr::Bold), }, ColumnType::FilePath => Cell::new(&string_column( item_path.clone().into_os_string().into_string().unwrap(), diff --git a/src/modes/save.rs b/src/modes/save.rs index 26d4b44..344c278 100644 --- a/src/modes/save.rs +++ b/src/modes/save.rs @@ -72,7 +72,7 @@ pub fn mode_save( size: None, compression: compression_type.to_string(), digest_type: digest_type.to_string(), - digest_value: String::new(), + digest_value: Some(String::new()), }; let id = db::insert_item(conn, item.clone())?; @@ -169,7 +169,7 @@ pub fn mode_save( // Finalize the digest and log the result let digest = digest_engine.finalize()?; debug!("DIGEST: {}", digest); - item.digest_value = digest; + item.digest_value = Some(digest); db::update_item(conn, item.clone())?;