Skip to content

Commit 97d2c6d

Browse files
committed
feat: autogenerating configs
1 parent 9d7e86d commit 97d2c6d

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/config.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::{fs, io, path::{Path, PathBuf}};
33
use proc_macros::serial_snake;
44

55
#[serial_snake]
6+
#[derive(Default)]
67
pub struct Config {
78
java_8_home: String,
89
java_16_home: String,
@@ -24,8 +25,7 @@ impl Config {
2425

2526
pub fn read_config<P: AsRef<Path>>(path: P) -> io::Result<Config> {
2627
let content = fs::read_to_string(path)?;
27-
match toml::from_str::<Config>(&content) {
28-
Ok(c) => Ok(c),
29-
Err(err) => Err(io::Error::new(io::ErrorKind::Other, err.to_string()))
30-
}
28+
toml::from_str::<Config>(&content).map_err(
29+
|e| io::Error::new(io::ErrorKind::Other, e.to_string())
30+
)
3131
}

src/main.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
use bin_patch_gen::build_tools::{
22
download_buildtools, find_file, run_buildtools, VANILLA_JAR_REGEX,
33
};
4+
use bin_patch_gen::config::Config;
45
use bin_patch_gen::jar::extract_jar;
56
use bin_patch_gen::util::dir::create_temp_dir;
67
use bin_patch_gen::util::TimeFormatter;
78
use bin_patch_gen::version::fetch_versions;
89
use bin_patch_gen::{config, jar, prepare_extraction_path, write_patch, MinecraftVersion, JAR_VERSIONS_PATH};
910
use regex::Regex;
10-
use std::path::Path;
11+
use std::fs;
12+
use std::path::{Path, PathBuf};
1113
use tracing::info;
1214
use tracing_subscriber::fmt::format;
1315

@@ -20,6 +22,12 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
2022

2123
tracing_subscriber::fmt().event_format(fmt).init();
2224

25+
let config_file = PathBuf::from("config.toml");
26+
if !fs::exists(&config_file)? {
27+
fs::write(config_file, toml::to_string_pretty(&Config::default())?)?;
28+
info!("Generated default config file.")
29+
}
30+
2331
let config = config::read_config("config.toml")?;
2432

2533
info!("Fetching versions...");

0 commit comments

Comments
 (0)