fix or silence most warnings
This commit is contained in:
		
							parent
							
								
									12501c8c73
								
							
						
					
					
						commit
						8bc7405d63
					
				
					 1 changed files with 34 additions and 12 deletions
				
			
		
							
								
								
									
										46
									
								
								src/main.rs
									
										
									
									
									
								
							
							
						
						
									
										46
									
								
								src/main.rs
									
										
									
									
									
								
							|  | @ -30,6 +30,8 @@ future improvements: | |||
| - search ADJ_TIMEYWIMEY to find places that need adjusting if the bot might run late | ||||
| (that's an incomplete list, but tag things as you notice them…) | ||||
| */ | ||||
| #![allow(dead_code)] // ≈100 warnings for yet-to-be-used stuff…
 | ||||
| #![allow(unused_macros)] | ||||
| 
 | ||||
| use chrono::{Datelike, Local, NaiveDate, Weekday}; | ||||
| use clap::{Arg, Command}; | ||||
|  | @ -38,6 +40,8 @@ use regex::Regex; | |||
| use std::borrow::Cow; | ||||
| use std::env; | ||||
| use std::error::Error; | ||||
| use std::fmt::Display; | ||||
| use std::io::IsTerminal; | ||||
| 
 | ||||
| mod key_value; | ||||
| use key_value::KeyValueStore as KV; | ||||
|  | @ -235,6 +239,9 @@ fn parse_args() -> Args { | |||
| /* ***** Main ***** */ | ||||
| 
 | ||||
| fn main() -> Result<(), Box<dyn Error>> { | ||||
|     if std::io::stdout().is_terminal() { | ||||
|         println!(include_str!("chaosknoten.txt"), VERSION = env!("CARGO_PKG_VERSION")); | ||||
|     } | ||||
|     // set up config file access
 | ||||
|     let args = parse_args(); | ||||
|     trace_var!(args); | ||||
|  | @ -242,8 +249,8 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
|     verboseln!("Using config file {}.", config_file.cyan()); | ||||
|     let config = KV::new(config_file).unwrap(); | ||||
|     config_spec::populate_defaults(&CONFIG_SPEC, &config); | ||||
|     // select mode
 | ||||
|     if args.check_mode { | ||||
|         println!(include_str!("chaosknoten.txt"), VERSION = env!("CARGO_PKG_VERSION")); | ||||
|         return config_spec::interactive_check(&CONFIG_SPEC, config); | ||||
|     } | ||||
|     // get config
 | ||||
|  | @ -280,7 +287,8 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
|     let mut last_state = ProgramState::parse(&config["state-name"]); | ||||
|     let last_run = config.get("state-last-run").unwrap_or_default(); | ||||
|     let last_run = NaiveDate::parse_from_str(&last_run, "%Y-%m-%d").unwrap_or_default(); | ||||
|     // figure out where we should be
 | ||||
|     trace_var!(last_run); | ||||
|     // reset state if this hasn't been run for too long
 | ||||
|     if (today - last_run).num_days() > 10 { | ||||
|         if !matches!(last_state, ProgramState::Normal) { | ||||
|             eprintln!("WARNING: last run was a long time ago, resetting state."); | ||||
|  | @ -289,6 +297,7 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
|         } | ||||
|     } | ||||
|     let last_state = last_state; | ||||
|     // figure out where we should be
 | ||||
|     // deltas has either 2 or 3 days, if 3 then the middle one is == 0 (i.e. today)
 | ||||
|     let deltas: Vec<i64> = nearest_plenum_days.iter().map(|&d| (d - today).num_days()).collect(); | ||||
|     // find the relevant one:
 | ||||
|  | @ -327,7 +336,7 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
|     verboseln!("Soll-Zustand: {}", intended_state.to_string().cyan()); | ||||
| 
 | ||||
|     let action: &ST = &TRANSITION_LUT[last_state as usize][intended_state as usize]; | ||||
|     trace_var!(action); | ||||
|     verboseln!("Notewendige Aktionen: {}", action.to_string().cyan()); | ||||
|     action.get()(delta, &plenum_day, &config, &hedgedoc, &email, &wiki)?; | ||||
| 
 | ||||
|     // TODO: cleanup / write new state
 | ||||
|  | @ -338,6 +347,14 @@ fn main() -> Result<(), Box<dyn Error>> { | |||
|         return Ok(()); | ||||
|     } | ||||
| 
 | ||||
|     /* ** dead code beyond this point ** */ | ||||
| 
 | ||||
|     let _ = (); // dummy line so linter doesn't highlight the entire following block
 | ||||
| 
 | ||||
|     #[allow(unused_variables)] | ||||
|     #[rustfmt::skip] | ||||
|     { | ||||
| 
 | ||||
|     // Dienstage diesen Monat
 | ||||
|     let all_tuesdays: Vec<NaiveDate> = get_all_weekdays(0, Weekday::Tue); | ||||
|     let zweiter_dienstag: String = all_tuesdays[1].to_string(); // z.B. 2024-07-09
 | ||||
|  | @ -506,6 +523,8 @@ Und hier ist das Protokoll des letzten Plenums: | |||
|             "matrix-password", | ||||
|         ]) | ||||
|         .ok(); | ||||
|     }; | ||||
|     Ok(()) | ||||
| } | ||||
| 
 | ||||
| fn get_all_weekdays(month_offset: i32, week_day: Weekday) -> Vec<NaiveDate> { | ||||
|  | @ -573,7 +592,7 @@ fn generate_new_pad_for_following_date( | |||
|                 übernächster_plenumtermin, | ||||
|                 überübernächster_plenumtermin, | ||||
|             ) | ||||
|             .unwrap_or_else(|error| template_content); // Try regex, if not successful use without regex
 | ||||
|             .unwrap_or(template_content); // Try regex, if not successful use without regex
 | ||||
| 
 | ||||
|             match hedgedoc.import_note(Some(&pad_id), template_modified) { | ||||
|                 Ok(_) => { | ||||
|  | @ -652,6 +671,7 @@ fn upper_first(s: &str) -> String { | |||
| 
 | ||||
| // BBBBBBBBBB
 | ||||
| 
 | ||||
| #[allow(unused_variables)] | ||||
| fn do_announcement( | ||||
|     ttp: i64, plenum_day: &NaiveDate, config: &KV, hedgedoc: &HedgeDoc, email: &SimpleEmail, | ||||
|     wiki: &Mediawiki, | ||||
|  | @ -660,6 +680,7 @@ fn do_announcement( | |||
|     todo!() | ||||
| } | ||||
| 
 | ||||
| #[allow(unused_variables)] | ||||
| fn do_reminder( | ||||
|     ttp: i64, plenum_day: &NaiveDate, config: &KV, hedgedoc: &HedgeDoc, email: &SimpleEmail, | ||||
|     wiki: &Mediawiki, | ||||
|  | @ -668,6 +689,7 @@ fn do_reminder( | |||
|     todo!() | ||||
| } | ||||
| 
 | ||||
| #[allow(unused_variables)] | ||||
| fn do_protocol( | ||||
|     ttp: i64, plenum_day: &NaiveDate, config: &KV, hedgedoc: &HedgeDoc, email: &SimpleEmail, | ||||
|     wiki: &Mediawiki, | ||||
|  | @ -678,6 +700,7 @@ fn do_protocol( | |||
| 
 | ||||
| /// General cleanup function. Call as `(999, today, …)` for a complete reset
 | ||||
| /// based on today as the base date.
 | ||||
| #[allow(unused_variables)] | ||||
| fn do_cleanup( | ||||
|     ttp: i64, plenum_day: &NaiveDate, config: &KV, hedgedoc: &HedgeDoc, email: &SimpleEmail, | ||||
|     wiki: &Mediawiki, | ||||
|  | @ -732,6 +755,12 @@ impl ST { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| impl Display for ST { | ||||
|     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||||
|         write!(f, "{:?}", self) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| fn nop( | ||||
|     _: i64, _: &NaiveDate, _: &KV, _: &HedgeDoc, _: &SimpleEmail, _: &Mediawiki, | ||||
| ) -> Result<(), Box<dyn Error>> { | ||||
|  | @ -816,14 +845,7 @@ impl ProgramState { | |||
| 
 | ||||
| impl std::fmt::Display for ProgramState { | ||||
|     fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { | ||||
|         let str = match self { | ||||
|             ProgramState::Normal => "Normal", | ||||
|             ProgramState::Announced => "Announced", | ||||
|             ProgramState::Reminded => "Reminded", | ||||
|             ProgramState::Waiting => "Waiting", | ||||
|             ProgramState::Logged => "Logged", | ||||
|         }; | ||||
|         write!(f, "{}", str) | ||||
|         write!(f, "{:?}", self) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 nobody
						nobody