feat: add step for mandb - user and system (update man entries) (#1319)
This commit is contained in:
@@ -209,6 +209,13 @@
|
||||
# home_manager_arguments = ["--flake", "file"]
|
||||
|
||||
|
||||
[mandb]
|
||||
# Enable the mandb step (to update manual entries).
|
||||
# Mandb is updated in the background by a service on most systems by default.
|
||||
# (default: false)
|
||||
# enable = true
|
||||
|
||||
|
||||
[git]
|
||||
# How many repos to pull at max in parallel
|
||||
# max_concurrency = 5
|
||||
|
||||
@@ -1312,3 +1312,27 @@ _version: 2
|
||||
zh_TW: "nh 找不到任何已設定的 flake"
|
||||
zh_CN: "nh 无法找到任何已配置的 flake"
|
||||
de: "nh kann keine konfigurierten flakes finden"
|
||||
"System Manuals":
|
||||
en: "System Manuals"
|
||||
lt: "Sistemos Vadovai"
|
||||
es: "Manuales del Sistema"
|
||||
fr: "Manuels du Système"
|
||||
zh_CN: "系统手册"
|
||||
zh_TW: "系統手冊"
|
||||
de: "Systemhandbücher"
|
||||
"User Manuals":
|
||||
en: "User Manuals"
|
||||
lt: "Vartotojo Vadovai"
|
||||
es: "Manuales de Usuario"
|
||||
fr: "Manuels de l'utilisateur"
|
||||
zh_CN: "用户手册"
|
||||
zh_TW: "使用者手冊"
|
||||
de: "Benutzerhandbücher"
|
||||
"ManDB isn't enabled":
|
||||
en: "ManDB isn't enabled"
|
||||
lt: "ManDB nėra įjungtas"
|
||||
es: "ManDB no está habilitado"
|
||||
fr: "ManDB n'est pas activé"
|
||||
zh_CN: "ManDB 未启用"
|
||||
zh_TW: "ManDB 未啟用"
|
||||
de: "ManDB ist nicht aktiviert"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
]);
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user