Skip to content

Commit 6ab9ed2

Browse files
authored
Merge pull request #637 from EnergySystemsModellingLab/move-settings.toml-from-model-dir
Move `settings.toml` out of model dir
2 parents 7d69c7d + 183350d commit 6ab9ed2

7 files changed

Lines changed: 23 additions & 13 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ jobs:
4848
mkdir muse2
4949
cp target/release/muse2${{ matrix.exe_suffix }} muse2
5050
cp LICENSE muse2/LICENCE.txt
51+
cp assets/settings.toml muse2
5152
cp assets/readme/readme_${{ matrix.osname }}.txt muse2/README.txt
5253
- uses: actions/upload-artifact@v4
5354
if: ${{ github.event_name != 'release' }}

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ platform-info = "2.0.5"
3434
derive_more = "0.99"
3535

3636
[dev-dependencies]
37+
current_dir = "0.1.2"
3738
regex = "1.11.1"
3839
rstest = {version = "0.25.0", default-features = false, features = ["crate-name"]}
3940

examples/simple_mc/settings.toml

Lines changed: 0 additions & 3 deletions
This file was deleted.

src/commands.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ pub fn handle_run_command(
8080
debug_model: bool,
8181
) -> Result<()> {
8282
// Load program settings
83-
let mut settings = Settings::from_path(model_path).context("Failed to load settings.")?;
83+
let mut settings = Settings::load().context("Failed to load settings.")?;
8484

8585
// This setting can be overridden by command-line argument
8686
if debug_model {

src/settings.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,41 +28,45 @@ impl Settings {
2828
/// # Returns
2929
///
3030
/// The program settings as a `Settings` struct or an error if the file is invalid
31-
pub fn from_path<P: AsRef<Path>>(model_dir: P) -> Result<Settings> {
32-
let file_path = model_dir.as_ref().join(SETTINGS_FILE_NAME);
31+
pub fn load() -> Result<Settings> {
32+
let file_path = Path::new(SETTINGS_FILE_NAME);
3333
if !file_path.is_file() {
3434
return Ok(Settings::default());
3535
}
3636

37-
read_toml(&file_path)
37+
read_toml(file_path)
3838
}
3939
}
4040

4141
#[cfg(test)]
4242
mod tests {
4343
use super::*;
44+
use current_dir::Cwd;
4445
use std::fs::File;
4546
use std::io::Write;
4647
use tempfile::tempdir;
4748

4849
#[test]
4950
fn test_settings_from_path_no_file() {
5051
let dir = tempdir().unwrap();
51-
assert_eq!(
52-
Settings::from_path(dir.path()).unwrap(),
53-
Settings::default()
54-
);
52+
let mut cwd = Cwd::mutex().lock().unwrap();
53+
cwd.set(dir.path()).unwrap();
54+
assert_eq!(Settings::load().unwrap(), Settings::default());
5555
}
5656

5757
#[test]
5858
fn test_settings_from_path() {
5959
let dir = tempdir().unwrap();
60+
let mut cwd = Cwd::mutex().lock().unwrap();
61+
cwd.set(dir.path()).unwrap();
62+
6063
{
61-
let mut file = File::create(dir.path().join(SETTINGS_FILE_NAME)).unwrap();
64+
let mut file = File::create(Path::new(SETTINGS_FILE_NAME)).unwrap();
6265
writeln!(file, "log_level = \"warn\"").unwrap();
6366
}
67+
6468
assert_eq!(
65-
Settings::from_path(dir.path()).unwrap(),
69+
Settings::load().unwrap(),
6670
Settings {
6771
log_level: Some("warn".to_string()),
6872
debug_model: false

0 commit comments

Comments
 (0)