fix(pkgfile): make pkgfile opt-in (#1449)
Co-authored-by: Gideon <87426140+GideonBear@users.noreply.github.com>
This commit is contained in:
@@ -228,6 +228,13 @@
|
||||
# enable = true
|
||||
|
||||
|
||||
[pkgfile]
|
||||
# Enable the pkgfile step (to update the pkgfile database).
|
||||
# Pkgfile is sometimes installed by default, but often not used and heavy to update.
|
||||
# (default: false)
|
||||
# enable = true
|
||||
|
||||
|
||||
[git]
|
||||
# How many repos to pull at max in parallel
|
||||
# max_concurrency = 5
|
||||
|
||||
@@ -402,6 +402,12 @@ pub struct Rustup {
|
||||
channels: Option<Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Default, Debug, Merge)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct Pkgfile {
|
||||
enable: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Default, Debug, Merge)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
/// Configuration file
|
||||
@@ -492,6 +498,9 @@ pub struct ConfigFile {
|
||||
|
||||
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
|
||||
rustup: Option<Rustup>,
|
||||
|
||||
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
|
||||
pkgfile: Option<Pkgfile>,
|
||||
}
|
||||
|
||||
fn config_directory() -> PathBuf {
|
||||
@@ -1783,6 +1792,14 @@ impl Config {
|
||||
.and_then(|doom| doom.aot)
|
||||
.unwrap_or(false)
|
||||
}
|
||||
|
||||
pub fn enable_pkgfile(&self) -> bool {
|
||||
self.config_file
|
||||
.pkgfile
|
||||
.as_ref()
|
||||
.and_then(|pkgfile| pkgfile.enable)
|
||||
.unwrap_or(false)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
@@ -710,6 +710,10 @@ pub fn run_pacstall(ctx: &ExecutionContext) -> Result<()> {
|
||||
pub fn run_pkgfile(ctx: &ExecutionContext) -> Result<()> {
|
||||
let pkgfile = require("pkgfile")?;
|
||||
|
||||
if !ctx.config().enable_pkgfile() {
|
||||
return Err(SkipStep("Pkgfile isn't enabled".to_string()).into());
|
||||
}
|
||||
|
||||
print_separator("pkgfile");
|
||||
|
||||
let sudo = ctx.require_sudo()?;
|
||||
|
||||
Reference in New Issue
Block a user