Skip to content

Commit

Permalink
Add Verbose mode for CLI application
Browse files Browse the repository at this point in the history
  • Loading branch information
akirill0v committed Jul 14, 2022
1 parent 29f6c35 commit c49fd44
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 12 deletions.
13 changes: 12 additions & 1 deletion cli/pg_datanymizer/src/main.rs
Expand Up @@ -9,7 +9,18 @@ mod options;

fn main() -> Result<()> {
let options = Options::from_args();
env_logger::init();

println!("VERBOSE_LEVEL: {}", options.verbose);
env_logger::init_from_env(env_logger::Env::default().filter_or(
"RUST_LOG",
match options.verbose {
0 => "error",
1 => "warn",
2 => "info",
3 => "debug",
_ => "trace",
},
));

let app = App::from_options(options)?;
app.run()
Expand Down
7 changes: 7 additions & 0 deletions cli/pg_datanymizer/src/options.rs
Expand Up @@ -99,6 +99,13 @@ pub struct Options {
help = "The remaining arguments are passed directly to `pg_dump` calls. You should add `--` before <DBNAME> in such cases"
)]
pub pg_dump_args: Vec<String>,

#[structopt(
parse(from_occurrences),
short = "v",
help = "Turn on verbose logging features to get more information about dumper errors"
)]
pub verbose: u64,
}

impl Options {
Expand Down
14 changes: 7 additions & 7 deletions datanymizer_dumper/src/postgres/dumper.rs
Expand Up @@ -5,13 +5,13 @@ use super::{
use crate::{indicator::Indicator, Dumper, SchemaInspector, Table};
use anyhow::Result;
use datanymizer_engine::{Engine, Filter, Settings, TableList};
use log::warn;
use postgres::IsolationLevel;
use std::{
io::{self, prelude::*},
process::{self, Command},
time::Instant,
};
use log::warn;

pub struct PgDumper<W: Write + Send, I: Indicator + Send> {
schema_inspector: PgSchemaInspector,
Expand Down Expand Up @@ -99,12 +99,12 @@ impl<W: 'static + Write + Send, I: 'static + Indicator + Send> PgDumper<W, I> {

let row = PgRow::from_string_row(line?, table.clone());
// let transformed = row.transform(&self.engine, cfg.name.as_str())?;
let transformed = row
.transform(&self.engine, cfg.name.as_str())
.map_err(|err| {
warn!("{:#?}", err);
err
})?;
let transformed =
row.transform(&self.engine, cfg.name.as_str())
.map_err(|err| {
warn!("{:#?}", err);
err
})?;
self.dump_writer.write_all(transformed.as_bytes())?;
self.dump_writer.write_all(b"\n")?;

Expand Down
6 changes: 2 additions & 4 deletions datanymizer_engine/src/transformers/template/mod.rs
Expand Up @@ -9,14 +9,14 @@ use crate::{
},
Transformers,
};
use log::warn;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::{
collections::HashMap,
hash::{Hash, Hasher},
};
use tera::{Context, Tera};
use log::warn;

const TEMPLATE_NAME: &str = "TemplateTransformerTemplate";
const FINAL_ROW_KEY: &str = "final";
Expand Down Expand Up @@ -78,9 +78,7 @@ impl TemplateTransformer {
self.renderer.render(TEMPLATE_NAME, ctx).map_err(|err| {
warn!(
"Can't render template: \n---\n{}\n---\nRules: \n{:#?}\nVariables: \n{:#?}",
self.format,
self.rules,
self.variables
self.format, self.rules, self.variables
);
warn!("{:#?}", err);
err
Expand Down
1 change: 1 addition & 0 deletions docs/pg_datanymizer.md
Expand Up @@ -16,6 +16,7 @@ pg_datanymizer [OPTIONS] <DBNAME> [PG_DUMP_ARGS]...
| `--accept_invalid_hostnames` | Accept invalid hostnames when using SSL
| `--help` | Prints help information
| `-V`, `--version` | Prints version information
| `-v`, `--verbose` | Turn on verbose logging to show more information about errors

#### OPTIONS

Expand Down

0 comments on commit c49fd44

Please sign in to comment.