diff options
| author | Joe Carstairs <me@joeac.net> | 2024-12-12 08:28:04 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-12-12 08:28:04 +0000 |
| commit | 54894f9de9bad4fecb2a116d59a03cdd003f84c0 (patch) | |
| tree | 6ce5517cecf23d4e93d7a381a374e1fa6c810cee /actualbudget_to_schist_transformer/src/run.rs | |
| parent | 8a30bcbdf9264d235bf93da3df8e170cfde53d02 (diff) | |
Moves rust workspace to root
Diffstat (limited to 'actualbudget_to_schist_transformer/src/run.rs')
| -rw-r--r-- | actualbudget_to_schist_transformer/src/run.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/actualbudget_to_schist_transformer/src/run.rs b/actualbudget_to_schist_transformer/src/run.rs new file mode 100644 index 0000000..3c88589 --- /dev/null +++ b/actualbudget_to_schist_transformer/src/run.rs @@ -0,0 +1,23 @@ +use anyhow::{Context, Result}; +use diesel::{Connection, SqliteConnection}; + +use crate::{actualbudget_state::read_actualbudget_state, schist_state::export_schist_state, transform_state::transform_state}; + +pub fn run(in_db_url: &str, out_db_url: &str) -> Result<()> { + let actualbudget_connection = &mut SqliteConnection::establish(in_db_url) + .with_context(|| format!( + "failed to establish connection to input database at {}", + in_db_url, + ))?; + let schist_connection = &mut SqliteConnection::establish(out_db_url) + .with_context(|| format!( + "failed to establish connection to output database at {}", + out_db_url, + ))?; + + let actualbudget_state = read_actualbudget_state(actualbudget_connection)?; + let schist_state = transform_state(actualbudget_state)?; + export_schist_state(&schist_state, schist_connection)?; + + Ok(()) +} |
