refactor: remove --time flags in favor of cargo time command (#58)
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
pub mod template;
|
||||
|
||||
// Use this file to add helper functions and additional modules.
|
||||
|
||||
|
||||
14
src/main.rs
14
src/main.rs
@@ -24,17 +24,16 @@ mod args {
|
||||
Solve {
|
||||
day: Day,
|
||||
release: bool,
|
||||
time: bool,
|
||||
dhat: bool,
|
||||
submit: Option<u8>,
|
||||
},
|
||||
All {
|
||||
release: bool,
|
||||
time: bool,
|
||||
},
|
||||
Time {
|
||||
all: bool,
|
||||
day: Option<Day>,
|
||||
store: bool,
|
||||
},
|
||||
#[cfg(feature = "today")]
|
||||
Today,
|
||||
@@ -46,14 +45,15 @@ mod args {
|
||||
let app_args = match args.subcommand()?.as_deref() {
|
||||
Some("all") => AppArguments::All {
|
||||
release: args.contains("--release"),
|
||||
time: args.contains("--time"),
|
||||
},
|
||||
Some("time") => {
|
||||
let all = args.contains("--all");
|
||||
let store = args.contains("--store");
|
||||
|
||||
AppArguments::Time {
|
||||
all,
|
||||
day: args.opt_free_from_str()?,
|
||||
store,
|
||||
}
|
||||
}
|
||||
Some("download") => AppArguments::Download {
|
||||
@@ -70,7 +70,6 @@ mod args {
|
||||
day: args.free_from_str()?,
|
||||
release: args.contains("--release"),
|
||||
submit: args.opt_value_from_str("--submit")?,
|
||||
time: args.contains("--time"),
|
||||
dhat: args.contains("--dhat"),
|
||||
},
|
||||
#[cfg(feature = "today")]
|
||||
@@ -101,8 +100,8 @@ fn main() {
|
||||
std::process::exit(1);
|
||||
}
|
||||
Ok(args) => match args {
|
||||
AppArguments::All { release, time } => all::handle(release, time),
|
||||
AppArguments::Time { day, all } => time::handle(day, all),
|
||||
AppArguments::All { release } => all::handle(release),
|
||||
AppArguments::Time { day, all, store } => time::handle(day, all, store),
|
||||
AppArguments::Download { day } => download::handle(day),
|
||||
AppArguments::Read { day } => read::handle(day),
|
||||
AppArguments::Scaffold { day, download } => {
|
||||
@@ -114,10 +113,9 @@ fn main() {
|
||||
AppArguments::Solve {
|
||||
day,
|
||||
release,
|
||||
time,
|
||||
dhat,
|
||||
submit,
|
||||
} => solve::handle(day, release, time, dhat, submit),
|
||||
} => solve::handle(day, release, dhat, submit),
|
||||
#[cfg(feature = "today")]
|
||||
AppArguments::Today => {
|
||||
match Day::today() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use crate::template::{all_days, run_multi::run_multi};
|
||||
|
||||
pub fn handle(is_release: bool, is_timed: bool) {
|
||||
run_multi(&all_days().collect(), is_release, is_timed);
|
||||
pub fn handle(is_release: bool) {
|
||||
run_multi(&all_days().collect(), is_release, false);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ use std::process::{Command, Stdio};
|
||||
|
||||
use crate::template::Day;
|
||||
|
||||
pub fn handle(day: Day, release: bool, time: bool, dhat: bool, submit_part: Option<u8>) {
|
||||
pub fn handle(day: Day, release: bool, dhat: bool, submit_part: Option<u8>) {
|
||||
let mut cmd_args = vec!["run".to_string(), "--bin".to_string(), day.to_string()];
|
||||
|
||||
if dhat {
|
||||
@@ -23,10 +23,6 @@ pub fn handle(day: Day, release: bool, time: bool, dhat: bool, submit_part: Opti
|
||||
cmd_args.push(submit_part.to_string());
|
||||
}
|
||||
|
||||
if time {
|
||||
cmd_args.push("--time".to_string());
|
||||
}
|
||||
|
||||
let mut cmd = Command::new("cargo")
|
||||
.args(&cmd_args)
|
||||
.stdout(Stdio::inherit())
|
||||
|
||||
@@ -4,12 +4,12 @@ use crate::template::run_multi::run_multi;
|
||||
use crate::template::timings::Timings;
|
||||
use crate::template::{all_days, readme_benchmarks, Day};
|
||||
|
||||
pub fn handle(day: Option<Day>, recreate_all: bool) {
|
||||
pub fn handle(day: Option<Day>, run_all: bool, store: bool) {
|
||||
let stored_timings = Timings::read_from_file();
|
||||
|
||||
let days_to_run = day.map_or_else(
|
||||
|| {
|
||||
if recreate_all {
|
||||
if run_all {
|
||||
all_days().collect()
|
||||
} else {
|
||||
// when the `--all` flag is not set, filter out days that are fully benched.
|
||||
@@ -23,16 +23,18 @@ pub fn handle(day: Option<Day>, recreate_all: bool) {
|
||||
|
||||
let timings = run_multi(&days_to_run, true, true).unwrap();
|
||||
|
||||
let merged_timings = stored_timings.merge(&timings);
|
||||
merged_timings.store_file().unwrap();
|
||||
if store {
|
||||
let merged_timings = stored_timings.merge(&timings);
|
||||
merged_timings.store_file().unwrap();
|
||||
|
||||
println!();
|
||||
match readme_benchmarks::update(merged_timings) {
|
||||
Ok(()) => {
|
||||
println!("Stored updated benchmarks.");
|
||||
}
|
||||
Err(_) => {
|
||||
eprintln!("Failed to store updated benchmarks.");
|
||||
println!();
|
||||
match readme_benchmarks::update(merged_timings) {
|
||||
Ok(()) => {
|
||||
println!("Stored updated benchmarks.");
|
||||
}
|
||||
Err(_) => {
|
||||
eprintln!("Failed to store updated benchmarks.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user