pre_commit_sort/
pre_commit.rs1use std::{fs::File, path::Path};
2
3use crate::Result;
4
5pub trait PreCommit: serde::de::DeserializeOwned + serde::Serialize {
6 const PATH: &'static str;
7
8 fn process(&mut self, install: bool);
9
10 fn main(install: bool) -> Result<()> {
11 if Path::new(Self::PATH).exists() {
12 let input = File::open(Self::PATH)?;
13 let mut pre_commit: Self = serde_yaml::from_reader(input)?;
14
15 pre_commit.process(install);
16
17 let output = File::create(Self::PATH)?;
18 serde_yaml::to_writer(output, &pre_commit)?;
19 }
20 Ok(())
21 }
22}