Skip to content

Commit

Permalink
Add featuremanifestsupport config option
Browse files Browse the repository at this point in the history
  • Loading branch information
davidanthoff authored and tecosaur committed Oct 6, 2024
1 parent ba75b55 commit 214c97d
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 0 deletions.
4 changes: 4 additions & 0 deletions src/bin/juliaup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use clap::Parser;
use juliaup::cli::{ConfigSubCmd, Juliaup, OverrideSubCmd, SelfSubCmd};
use juliaup::command_api::run_command_api;
use juliaup::command_completions::run_command_completions;
use juliaup::command_config_featuremanifestsupport::run_command_config_featuremanifestsupport;
#[cfg(not(windows))]
use juliaup::command_config_symlinks::run_command_config_symlinks;
use juliaup::command_config_versionsdbupdate::run_command_config_versionsdbupdate;
Expand Down Expand Up @@ -123,6 +124,9 @@ fn main() -> Result<()> {
ConfigSubCmd::VersionsDbUpdateInterval { value } => {
run_command_config_versionsdbupdate(value, false, &paths)
}
ConfigSubCmd::FeatureManifestSupport { value } => {
run_command_config_featuremanifestsupport(value, false, &paths)
}
},
Juliaup::Api { command } => run_command_api(&command, &paths),
Juliaup::InitialSetupFromLauncher {} => run_command_initial_setup_from_launcher(&paths),
Expand Down
6 changes: 6 additions & 0 deletions src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,4 +157,10 @@ pub enum ConfigSubCmd {
/// New value
value: Option<i64>,
},
/// Enable Julia version selection from manifests
#[clap(name = "featuremanifestsupport")]
FeatureManifestSupport {
/// New value
value: Option<bool>,
},
}
50 changes: 50 additions & 0 deletions src/command_config_featuremanifestsupport.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
use crate::config_file::{load_config_db, load_mut_config_db, save_config_db};
use anyhow::{Context, Result};

pub fn run_command_config_featuremanifestsupport(
value: Option<bool>,
quiet: bool,
paths: &crate::global_paths::GlobalPaths,
) -> Result<()> {
match value {
Some(value) => {
let mut config_file = load_mut_config_db(paths)
.with_context(|| "`config` command failed to load configuration data.")?;

let mut value_changed = false;

if value != config_file.data.settings.feature_manifest_support {
config_file.data.settings.feature_manifest_support = value;

value_changed = true;
}

save_config_db(&mut config_file)
.with_context(|| "Failed to save configuration file from `config` command.")?;

if !quiet {
if value_changed {
eprintln!("Property 'featuremanifestsupport' set to '{}'", value);
} else {
eprintln!(
"Property 'featuremanifestsupport' is already set to '{}'",
value
);
}
}
}
None => {
let config_file = load_config_db(paths)
.with_context(|| "`config` command failed to load configuration data.")?;

if !quiet {
eprintln!(
"Property 'featuremanifestsupport' set to '{}'",
config_file.data.settings.feature_manifest_support
);
}
}
};

Ok(())
}
9 changes: 9 additions & 0 deletions src/config_file.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,20 @@ pub struct JuliaupConfigSettings {
skip_serializing_if = "is_default_versionsdb_update_interval"
)]
pub versionsdb_update_interval: i64,
#[serde(
rename = "FeatureManifestSupport",
default,
skip_serializing_if = "is_default"
)]
pub feature_manifest_support: bool,
}

impl Default for JuliaupConfigSettings {
fn default() -> Self {
JuliaupConfigSettings {
create_channel_symlinks: false,
versionsdb_update_interval: default_versionsdb_update_interval(),
feature_manifest_support: false,
}
}
}
Expand Down Expand Up @@ -190,6 +197,7 @@ pub fn load_config_db(paths: &GlobalPaths) -> Result<JuliaupReadonlyConfigFile>
settings: JuliaupConfigSettings {
create_channel_symlinks: false,
versionsdb_update_interval: default_versionsdb_update_interval(),
feature_manifest_support: false,
},
last_version_db_update: None,
},
Expand Down Expand Up @@ -286,6 +294,7 @@ pub fn load_mut_config_db(paths: &GlobalPaths) -> Result<JuliaupConfigFile> {
settings: JuliaupConfigSettings {
create_channel_symlinks: false,
versionsdb_update_interval: default_versionsdb_update_interval(),
feature_manifest_support: false,
},
last_version_db_update: None,
};
Expand Down
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ pub mod command_add;
pub mod command_api;
pub mod command_completions;
pub mod command_config_backgroundselfupdate;
pub mod command_config_featuremanifestsupport;
pub mod command_config_modifypath;
pub mod command_config_startupselfupdate;
pub mod command_config_symlinks;
Expand Down

0 comments on commit 214c97d

Please sign in to comment.