Skip to content

Commit d544739

Browse files
committed
"fixed printing into log file"
1 parent e86416a commit d544739

File tree

4 files changed

+35
-20
lines changed

4 files changed

+35
-20
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ serde = { version = "1.0", features = ["derive"] }
2828
semver = { version = "1.0", features = ["serde"] }
2929
pretty_env_logger = "0.5"
3030
log = "0.4"
31+
env_logger = "0.9"
3132
average = "0.15"
3233
iter_num_tools = "0.7"
3334
indicatif = {version = "*", features = ["rayon"]}
12 KB
Binary file not shown.

examples/cppm/log_280_0.001.log

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[2025-01-13T13:00:57Z INFO duello::energy] Adding Coulomb potential to nonbonded matrix
2+
[2025-01-13T13:00:57Z INFO duello] Medium: 𝑇 = 280.00 K, εᵣ = 85.3, λᴮ = 7.0 Å, 𝐼 = 1.0 mM, λᴰ = 97.2 Å, 0.0 M 🧂Salt = NaCl
3+
[2025-01-13T13:00:57Z INFO duello] Molecular net-charges: [-8.00e, -8.00e]
4+
[2025-01-13T13:00:57Z INFO duello] Molecular masses (g/mol): [1000000066.00e, 1000000066.00e]
5+
[2025-01-13T13:00:57Z INFO duello] COM range: [37.0, 121.0) in 0.5 Å steps 🐾
6+
[2025-01-13T13:00:57Z INFO duello::icotable] Actual angle resolution = 0.55 radians
7+
[2025-01-13T13:00:57Z INFO duello::icoscan] 6D table: 𝑅(168) x 𝜔(12) x 𝜃𝜑(42) x 𝜃𝜑(42) = 3556224 poses 💃🕺 (463.7 MB)
8+
[2025-01-13T13:01:05Z INFO duello::report] Second virial coefficient, 𝐵₂ = 2479818.43 ų
9+
[2025-01-13T13:01:05Z INFO duello::report] = 1.49e-12 mol⋅ml/g²
10+
[2025-01-13T13:01:05Z INFO duello::report] Reduced second virial coefficient, 𝐵₂ / 𝐵₂hs = 23.38 using σ = 37.00 Å
11+
[2025-01-13T13:01:05Z INFO duello::report] Plot: free energy and mean energy along mass center separation. In units of kT and angstroms.

src/main.rs

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ enum Commands {
120120
}
121121

122122
/// Calculate energy of all two-body poses
123-
fn do_scan(cmd: &Commands) -> Result<()> {
123+
fn do_scan(cmd: &Commands) -> Result<(), Box<dyn std::error::Error>> {
124124
let Commands::Scan {
125125
mol1,
126126
mol2,
@@ -138,7 +138,7 @@ fn do_scan(cmd: &Commands) -> Result<()> {
138138
log_file,
139139
} = cmd
140140
else {
141-
anyhow::bail!("Unknown command");
141+
return Err(Box::<dyn std::error::Error>::from("No command given"));
142142
};
143143
assert!(rmin < rmax);
144144

@@ -195,7 +195,7 @@ fn do_scan(cmd: &Commands) -> Result<()> {
195195
pair_matrix,
196196
temperature,
197197
pmf_file,
198-
)
198+
);
199199
} else {
200200
do_anglescan(
201201
distances,
@@ -205,8 +205,9 @@ fn do_scan(cmd: &Commands) -> Result<()> {
205205
pair_matrix,
206206
temperature,
207207
pmf_file,
208-
)
209-
}
208+
);
209+
};
210+
Ok(())
210211
}
211212

212213
fn do_dipole(cmd: &Commands) -> Result<()> {
@@ -393,11 +394,10 @@ fn pqr_write_atom(
393394
Ok(())
394395
}
395396

396-
fn do_main() -> Result<(), anyhow::Error> {
397+
fn do_main() -> Result<(), Box<dyn std::error::Error>> {
397398
if std::env::var("RUST_LOG").is_err() {
398399
std::env::set_var("RUST_LOG", "info");
399400
}
400-
//pretty_env_logger::init();
401401

402402
let cli = Cli::parse();
403403
match cli.command {
@@ -407,24 +407,32 @@ fn do_main() -> Result<(), anyhow::Error> {
407407
Commands::Potential { .. } => do_potential(&cmd)?,
408408
},
409409
None => {
410-
anyhow::bail!("No command given");
410+
return Err(Box::<dyn std::error::Error>::from("No command given"));
411411
}
412412
};
413413
Ok(())
414414
}
415415

416416
fn main() {
417+
if let Err(e) = run() {
418+
eprintln!("Application error: {}", e);
419+
std::process::exit(1);
420+
}
421+
}
422+
423+
fn run() -> Result<(), Box<dyn std::error::Error>> {
417424
let cli = Cli::parse();
418425

419426
// Set up logging
420427
let log_path = match &cli.command {
421428
Some(Commands::Scan { log_file, .. }) => log_file,
422429
_ => {
423430
eprintln!("No valid command given or log file not specified.");
424-
return;
431+
return Err(Box::<dyn std::error::Error>::from("No command given"));
425432
}
426433
};
427-
let log_file = File::create(log_path).unwrap();
434+
435+
let mut log_file = File::create(log_path)?;
428436
// Initialize the logger
429437
let mut builder = Builder::new();
430438
builder
@@ -438,25 +446,20 @@ fn main() {
438446

439447
match cli.command {
440448
Some(Commands::Scan { .. }) => {
441-
// Use log_file here if needed
442-
do_scan(&cli.command.unwrap()).unwrap();
449+
do_scan(&cli.command.unwrap())?;
443450
}
444451
Some(Commands::Potential { .. }) => {
445-
// Use log_file here if needed
446-
do_potential(&cli.command.unwrap()).unwrap();
452+
do_potential(&cli.command.unwrap())?;
447453
}
448454
Some(Commands::Dipole { .. }) => {
449-
// Use log_file here if needed
450-
do_dipole(&cli.command.unwrap()).unwrap();
455+
do_dipole(&cli.command.unwrap())?;
451456
}
452457
None => {
453-
anyhow::bail!("No command given");
458+
return Err(Box::<dyn std::error::Error>::from("No command given"));
454459
}
455460
};
456461

457-
if let Err(err) = do_main() {
458-
eprintln!("Error: {}", &err);
459-
}
462+
Ok(())
460463
}
461464

462465
#[cfg(test)]

0 commit comments

Comments
 (0)