feat: add compression and digest support with database schema updates
This commit is contained in:
committed by
Andrew Phillips (aider)
parent
9b61a37036
commit
bbdfe19836
@@ -4,10 +4,10 @@ use std::str::FromStr;
|
||||
|
||||
use crate::compression_engine::{CompressionType, get_compression_engine};
|
||||
use crate::db;
|
||||
use clap::error::ErrorKind;
|
||||
use clap::Command;
|
||||
use log::{debug, info};
|
||||
use crate::digest_engine;
|
||||
use clap::Command;
|
||||
use clap::error::ErrorKind;
|
||||
use log::{debug, info};
|
||||
use rusqlite::Connection;
|
||||
|
||||
pub fn mode_update(
|
||||
@@ -46,9 +46,9 @@ pub fn mode_update(
|
||||
};
|
||||
|
||||
let compression_type = CompressionType::from_str(&item.compression)?;
|
||||
let compression_engine = get_compression_engine(compression_type)
|
||||
.expect("Unable to get compression engine");
|
||||
|
||||
let compression_engine =
|
||||
get_compression_engine(compression_type).expect("Unable to get compression engine");
|
||||
|
||||
if item.size.is_none() {
|
||||
info!("Updating unknown stream size");
|
||||
let item_file_metadata = item_path.metadata();
|
||||
@@ -66,7 +66,6 @@ pub fn mode_update(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if item.digest_value.is_none() {
|
||||
let digest_type = digest_engine::DigestType::from_str(&item.digest_type)?;
|
||||
|
||||
@@ -81,7 +80,7 @@ pub fn mode_update(
|
||||
|
||||
// Create and initialize digest engine
|
||||
let mut digest_engine = digest_engine::get_digest_engine(digest_type);
|
||||
|
||||
|
||||
// Read file content and update digest
|
||||
let mut reader = compression_engine.open(item_path)?;
|
||||
let mut buffer = [0; 4096];
|
||||
@@ -92,10 +91,10 @@ pub fn mode_update(
|
||||
}
|
||||
digest_engine.update(&buffer[..bytes_read]);
|
||||
}
|
||||
|
||||
|
||||
// Get final digest value
|
||||
let digest_value = digest_engine.finalize()?;
|
||||
|
||||
|
||||
// Update item with new digest value
|
||||
item.digest_value = Some(digest_value);
|
||||
db::update_item(conn, item.clone())?;
|
||||
|
||||
Reference in New Issue
Block a user