Create `pijul_config::global_config_directory()`
Dependencies
- [2]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [3]
VL7ZYKHBRunning hooks through shell on Windows and Unix - [4]
4KJ45IJLImplement new identity management - [5]
LZOGKBJXnew command `pijul client` for authenticating to a HTTP server - [6]
QWIYNMI5Formatting + big-endian Sanakirja - [7]
Z4PPQZUGRefactor `pijul-config` to support layered configuration - [8]
YW6NICQVMigrate codebase to refactored `pijul_config` crate - [9]
HM6QW3CYHandle missing configurations in `pijul_config` - [10]
TFPETWTVAdd config options for patch message templates - [11]
HJVWPKWVMigrate crates to edition 2024 - [12]
ZSFJT4SFAllow remotes to have a different push and pull address - [13]
5WERCJKLCheck if any identities exist before removal - [14]
2TWREKSRTreat missing config file as empty - [15]
N26HD5PFReplace `chrono` with `jiff` - [16]
4OJWMSOWFully replace crate::Identity - [17]
I24UEJQLVarious post-fire fixes - [18]
4RV7T4SRMigrate from `pijul::config` to `pijul-config` - [19]
HKHMES6TSolving conflicts - [20]
IUGP6ZGBAdd support for ~/.config/pijul even on macos - [21]
WTPFQPO5Add global `no_prompt` flag
Change contents
- replacement in pijul-identity/src/repair.rs at line 43
let config_path = Global::config_file().unwrap();let mut dir = config_path.parent().unwrap().to_path_buf();let mut dir = pijul_config::global_config_directory().unwrap(); - replacement in pijul-identity/src/repair.rs at line 176
let config_path = Global::config_file().unwrap();let config_dir = config_path.parent().unwrap();let config_dir = pijul_config::global_config_directory().unwrap(); - edit in pijul-identity/src/load.rs at line 5
use pijul_config::global::Global; - replacement in pijul-identity/src/load.rs at line 29
let config_file_path = Global::config_file().unwrap();let config_directory = config_file_path.parent().expect("Could not find global config directory");let config_directory = pijul_config::global_config_directory().unwrap(); - replacement in pijul-identity/src/load.rs at line 122
let config_file = Global::config_file().unwrap();let config_dir = config_file.parent().unwrap();let config_dir = pijul_config::global_config_directory().unwrap(); - replacement in pijul-config/src/lib.rs at line 17
use std::path::Path;use std::path::{Path, PathBuf}; - edit in pijul-config/src/lib.rs at line 72
let global_config_path = Global::config_file().unwrap(); - replacement in pijul-config/src/lib.rs at line 90
let global_config = match Global::read_contents(&global_config_path) {Ok(contents) => {// Parse the config (and make sure it's valid!)let global_config = Global::parse_contents(&global_config_path, &contents)?;// Add the configuration layer as a stringlayers = layers.merge(Toml::string(&contents));let global_config = match Global::config_file() {Some(global_config_path) => match Global::read_contents(&global_config_path) {Ok(contents) => {// Parse the config (and make sure it's valid!)let global_config = Global::parse_contents(&global_config_path, &contents)?;// Add the configuration layer as a stringlayers = layers.merge(Toml::string(&contents)); - replacement in pijul-config/src/lib.rs at line 98
Some(global_config)}Err(error) => {warn!("Unable to read global config file: {error:#?}");Some(global_config)}Err(error) => {warn!("Unable to read global config file: {error:#?}");None}},None => {warn!("Unable to find global configuration path"); - edit in pijul-config/src/lib.rs at line 169
}/// Select which configuration directory to usepub fn global_config_directory() -> Option<PathBuf> {// 1. $PIJUL_CONFIG_DIR/std::env::var("PIJUL_CONFIG_DIR").ok().map(PathBuf::from).map(|directory| directory.join(CONFIG_FILE))// 2. ~/.config/pijul/.or_else(|| match dirs_next::config_dir() {Some(global_config_dir) => Some(global_config_dir.join(CONFIG_DIR)),None => None,})// 3. ~/.pijulconfig/.or_else(|| match dirs_next::home_dir() {Some(home_dir) => Some(home_dir.join(CONFIG_DIR)),None => None,}) - replacement in pijul-config/src/global.rs at line 2
use crate::{CONFIG_DIR, CONFIG_FILE, GLOBAL_CONFIG_FILE, Shared};use crate::{CONFIG_FILE, Shared}; - replacement in pijul-config/src/global.rs at line 28
// 1. PIJUL_CONFIG_DIR environment variablestd::env::var("PIJUL_CONFIG_DIR").ok().map(PathBuf::from)// 2. ~/.config/pijul/config.toml.or_else(|| match dirs_next::config_dir() {Some(config_dir) => {let config_path = config_dir.join(CONFIG_DIR).join(CONFIG_FILE);match config_path.exists() {true => Some(config_path),false => None,}}None => None,})// 3. ~/.pijulconfig.or_else(|| match dirs_next::home_dir() {Some(home_dir) => {let config_path = home_dir.join(GLOBAL_CONFIG_FILE);match config_path.exists() {true => Some(config_path),false => None,}}None => None,})// {config_directory}/config.tomlcrate::global_config_directory().map(|config_directory| config_directory.join(CONFIG_FILE)) - edit in pijul/src/commands/identity.rs at line 3
use pijul_config::global::Global; - replacement in pijul/src/commands/identity.rs at line 456
let path = Global::config_file()let path = pijul_config::global_config_directory() - edit in pijul/src/commands/identity.rs at line 458
.parent().unwrap() - edit in pijul/src/commands/client.rs at line 5
use pijul_config::global::Global; - replacement in pijul/src/commands/client.rs at line 22
if let Some(mut cached) = Global::config_file() {cached.pop();if let Some(mut cached) = pijul_config::global_config_directory() {