refactor: disable julia startup file for julia package update (#983)
* refactor(julia): disable julia startup file for julia package update * feat(julia): add configuration option for julia startup file * fix: deny unknown fields on JuliaConfig deserialisation Co-authored-by: SteveLauC <stevelauc@outlook.com> * doc(julia): clarify startup_file option purpose --------- Co-authored-by: SteveLauC <stevelauc@outlook.com>
This commit is contained in:
committed by
GitHub
parent
444689c899
commit
202897ba35
@@ -452,6 +452,12 @@ pub struct Lensfun {
|
||||
use_sudo: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Default, Debug, Merge)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct JuliaConfig {
|
||||
startup_file: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Default, Debug, Merge)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
/// Configuration file
|
||||
@@ -518,6 +524,9 @@ pub struct ConfigFile {
|
||||
|
||||
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
|
||||
lensfun: Option<Lensfun>,
|
||||
|
||||
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
|
||||
julia: Option<JuliaConfig>,
|
||||
}
|
||||
|
||||
fn config_directory() -> PathBuf {
|
||||
@@ -1632,6 +1641,14 @@ impl Config {
|
||||
.and_then(|lensfun| lensfun.use_sudo)
|
||||
.unwrap_or(false)
|
||||
}
|
||||
|
||||
pub fn julia_use_startup_file(&self) -> bool {
|
||||
self.config_file
|
||||
.julia
|
||||
.as_ref()
|
||||
.and_then(|julia| julia.startup_file)
|
||||
.unwrap_or(true)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -908,10 +908,15 @@ pub fn update_julia_packages(ctx: &ExecutionContext) -> Result<()> {
|
||||
|
||||
print_separator(t!("Julia Packages"));
|
||||
|
||||
ctx.run_type()
|
||||
.execute(julia)
|
||||
.args(["-e", "using Pkg; Pkg.update()"])
|
||||
.status_checked()
|
||||
let mut executor = ctx.run_type().execute(julia);
|
||||
|
||||
executor.arg(if ctx.config().julia_use_startup_file() {
|
||||
"--startup-file=yes"
|
||||
} else {
|
||||
"--startup-file=no"
|
||||
});
|
||||
|
||||
executor.args(["-e", "using Pkg; Pkg.update()"]).status_checked()
|
||||
}
|
||||
|
||||
pub fn run_helm_repo_update(ctx: &ExecutionContext) -> Result<()> {
|
||||
|
||||
Reference in New Issue
Block a user