feat: add meta plugin support to save mode
This commit is contained in:
committed by
Andrew Phillips (aider)
parent
7a8814e926
commit
6f5c3c3dd4
@@ -14,7 +14,7 @@ use crate::compression_engine::get_compression_engine;
|
|||||||
use crate::db::{self};
|
use crate::db::{self};
|
||||||
use crate::digest_engine::get_digest_engine;
|
use crate::digest_engine::get_digest_engine;
|
||||||
use crate::meta_plugin::{MetaPlugin, MetaPluginType, get_meta_plugin};
|
use crate::meta_plugin::{MetaPlugin, MetaPluginType, get_meta_plugin};
|
||||||
use crate::modes::common::{cmd_args_compression_type, cmd_args_digest_type, cmd_args_meta_plugin_types, get_meta_from_env, store_item_digest_value};
|
use crate::modes::common::{cmd_args_compression_type, cmd_args_digest_type, cmd_args_meta_plugin_types, get_meta_from_env, store_item_digest_value, store_item_meta_value};
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
|
|
||||||
pub fn mode_save(
|
pub fn mode_save(
|
||||||
@@ -141,6 +141,11 @@ pub fn mode_save(
|
|||||||
stdout.write_all(&buffer[..n])?;
|
stdout.write_all(&buffer[..n])?;
|
||||||
item_out.write_all(&buffer[..n])?;
|
item_out.write_all(&buffer[..n])?;
|
||||||
digest_engine.update(&buffer[..n]);
|
digest_engine.update(&buffer[..n]);
|
||||||
|
|
||||||
|
for meta_plugin in meta_plugins.iter() {
|
||||||
|
meta_plugin.update(&buffer[..n]);
|
||||||
|
}
|
||||||
|
|
||||||
item.size = match item.size {
|
item.size = match item.size {
|
||||||
None => Some(n as i64),
|
None => Some(n as i64),
|
||||||
Some(prev_n) => Some(prev_n + n as i64),
|
Some(prev_n) => Some(prev_n + n as i64),
|
||||||
@@ -155,6 +160,17 @@ pub fn mode_save(
|
|||||||
debug!("DIGEST: {}", digest);
|
debug!("DIGEST: {}", digest);
|
||||||
|
|
||||||
store_item_digest_value(conn, item.clone(), digest_type, digest)?;
|
store_item_digest_value(conn, item.clone(), digest_type, digest)?;
|
||||||
|
|
||||||
|
for meta_plugin in meta_plugins.iter() {
|
||||||
|
let meta_name = meta_plugin.meta_name();
|
||||||
|
|
||||||
|
// TODO: Add error handling instead of unwrap.
|
||||||
|
let meta_value = meta_plugin.finalize().unwrap();
|
||||||
|
|
||||||
|
store_item_meta_value(conn, item.clone(), meta_name, meta_value)?;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
db::update_item(conn, item.clone())?;
|
db::update_item(conn, item.clone())?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
Reference in New Issue
Block a user