Replace `pijul_repository::init_default_config` with `pijul_config::Local::{new, write}`

finchie
Jul 27, 2025, 2:17 PM
U2KAO5VITQW4WW5FVAFJYDV4YNS6NRRZJO5W6VHCS5WR4A23Z2NQC

Dependencies

  • [2] L4JXJHWX pijul/*: reorganize imports and remove extern crate
  • [3] Q7CHNDXN Init repo with default .ignore file
  • [4] H72JG6HL Init feature; specific .ignore configs
  • [5] OPC2VAZD Writing an initial config file at initialisation
  • [6] GKSVBEUW Refactor Repository constructors to take Option<&Path> instead of Option<PathBuf>
  • [7] EFY2CITF Make `pijul_repository::max_files()` infallible
  • [8] Z4PPQZUG Refactor `pijul-config` to support layered configuration
  • [9] YW6NICQV Migrate codebase to refactored `pijul_config` crate
  • [10] HGJETVAN Create `pijul_config::global_config_directory()`
  • [11] SXEYMYF7 Fixing the bad changes in history (unfortunately, by rebooting).

Change contents

  • edit in pijul-repository/src/lib.rs at line 8
    [7.24]
    [2.39]
    use pijul_config::local::Local;
  • replacement in pijul-repository/src/lib.rs at line 120
    [9.90][5.59:107](),[6.700][5.59:107](),[4.526][5.59:107]()
    init_default_config(&cur, remote)?;
    [9.90]
    [6.701]
    // Initialize the local configuration file on disk
    let mut local_config = Local::new(&cur);
    local_config.default_remote = remote.map(str::to_string);
    local_config.write()?;
  • edit in pijul-repository/src/lib.rs at line 147
    [3.465][6.811:900](),[6.900][5.208:538](),[5.208][5.208:538](),[5.538][5.538:544](),[5.544][5.544:555](),[5.555][5.555:558]()
    fn init_default_config(path: &Path, remote: Option<&str>) -> Result<(), anyhow::Error> {
    use std::io::Write;
    let mut path = path.join(DOT_DIR);
    path.push("config");
    if std::fs::metadata(&path).is_err() {
    let mut f = std::fs::File::create(&path)?;
    if let Some(rem) = remote {
    writeln!(f, "default_remote = {:?}", rem)?;
    }
    writeln!(f, "[hooks]\nrecord = []")?;
    }
    Ok(())
    }
  • replacement in pijul-config/src/local.rs at line 6
    [8.2577][8.2577:2622]()
    use crate::{REPOSITORY_CONFIG_FILE, Shared};
    [8.2577]
    [8.2622]
    use crate::{CONFIG_FILE, REPOSITORY_CONFIG_FILE, Shared};
  • edit in pijul-config/src/local.rs at line 26
    [8.3107]
    [8.3107]
    pub fn new(repository_path: &Path) -> Self {
    let config_path = Self::config_file(repository_path);
    Self {
    source_file: Some(config_path),
    ..Self::default()
    }
    }
  • replacement in pijul-config/src/local.rs at line 35
    [8.3167][8.3167:3270]()
    repository_path
    .join(libpijul::DOT_DIR)
    .join(REPOSITORY_CONFIG_FILE)
    [8.3167]
    [8.3270]
    let dot_directory = repository_path.join(libpijul::DOT_DIR);
    let old_config_path = dot_directory.join(REPOSITORY_CONFIG_FILE);
    match old_config_path.exists() {
    true => old_config_path,
    false => dot_directory.join(CONFIG_FILE),
    }
  • replacement in pijul-config/src/local.rs at line 64
    [8.4114][8.4114:4194]()
    let mut config_file = File::create(self.source_file.clone().unwrap())?;
    [8.4114]
    [8.4194]
    let mut config_file = File::create(self.source_file.as_ref().unwrap())?;
  • replacement in pijul-config/src/global.rs at line 52
    [8.13212][8.13212:13292]()
    let mut config_file = File::create(self.source_file.clone().unwrap())?;
    [8.13212]
    [8.13292]
    let mut config_file = File::create(self.source_file.as_ref().unwrap())?;