feat: add step for mandb - user and system (update man entries) (#1319)

This commit is contained in:
Rafael Scalet
2025-09-14 03:08:52 -03:00
committed by GitHub
parent 456d62224e
commit 99d989d486
5 changed files with 72 additions and 0 deletions

View File

@@ -62,6 +62,12 @@ pub struct Containers {
runtime: Option<ContainerRuntime>,
}
#[derive(Deserialize, Default, Debug, Merge)]
#[serde(deny_unknown_fields)]
pub struct Mandb {
enable: Option<bool>,
}
#[derive(Deserialize, Default, Debug, Merge)]
#[serde(deny_unknown_fields)]
pub struct Git {
@@ -414,6 +420,9 @@ pub struct ConfigFile {
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
linux: Option<Linux>,
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
mandb: Option<Mandb>,
#[merge(strategy = crate::utils::merge_strategies::inner_merge_opt)]
git: Option<Git>,
@@ -1497,6 +1506,14 @@ impl Config {
.unwrap_or(false)
}
pub fn enable_mandb(&self) -> bool {
self.config_file
.mandb
.as_ref()
.and_then(|mandb| mandb.enable)
.unwrap_or(false)
}
pub fn open_remotes_in_new_terminal(&self) -> bool {
self.config_file
.windows

View File

@@ -94,6 +94,7 @@ pub enum Step {
Lure,
Macports,
Mamba,
Mandb,
Mas,
Maza,
Micro,
@@ -388,6 +389,11 @@ impl Step {
runner.execute(*self, "MacPorts", || macos::run_macports(ctx))?
}
Mamba => runner.execute(*self, "mamba", || generic::run_mamba_update(ctx))?,
Mandb =>
{
#[cfg(target_os = "linux")]
runner.execute(*self, "Manual Entries", || linux::run_mandb(ctx))?
}
Mas =>
{
#[cfg(target_os = "macos")]
@@ -725,6 +731,7 @@ pub(crate) fn default_steps() -> Vec<Step> {
Waydroid,
AutoCpufreq,
CinnamonSpices,
Mandb,
Pkgfile,
]);

View File

@@ -692,6 +692,23 @@ pub fn run_pkgfile(ctx: &ExecutionContext) -> Result<()> {
sudo.execute(ctx, pkgfile)?.arg("--update").status_checked()
}
pub fn run_mandb(ctx: &ExecutionContext) -> Result<()> {
let sudo = ctx.require_sudo()?;
let mandb = require("mandb")?;
if !ctx.config().enable_mandb() {
return Err(SkipStep(t!("ManDB isn't enabled").to_string()).into());
}
print_separator(t!("System Manuals"));
sudo.execute(ctx, &mandb)?.status_checked()?;
print_separator(t!("User Manuals"));
ctx.execute(&mandb).arg("--user-db").status_checked()
}
pub fn run_packer_nu(ctx: &ExecutionContext) -> Result<()> {
let nu = require("nu")?;
let packer_home = HOME_DIR.join(".local/share/nushell/packer");