Round 312: Resolvectl ext, Bootctl ext, Homectl ext, Oomctl ext, Systemd-analyze ext (20 commands)

ober

40d17ebaf5a41e430b6bc81e6dfb8f82cdfc14bc

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index e6989a9..9a63251 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 312 — Resolvectl ext, Bootctl ext, Homectl ext, Oomctl ext, Systemd-analyze ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `resolvectl-monitor` | :orange_circle: | Monitor DNS resolutions |
+| `resolvectl-log-level` | :orange_circle: | Set resolver log level |
+| `resolvectl-reset` | :orange_circle: | Reset server features |
+| `bootctl-status` | :orange_circle: | Show boot loader status |
+| `bootctl-list` | :orange_circle: | List boot entries |
+| `bootctl-install` | :orange_circle: | Install boot loader |
+| `bootctl-update` | :orange_circle: | Update boot loader |
+| `homectl-list` | :orange_circle: | List home directories |
+| `homectl-create` | :orange_circle: | Create home directory |
+| `homectl-remove` | :orange_circle: | Remove home directory |
+| `homectl-inspect` | :orange_circle: | Inspect home directory |
+| `oomctl-dump` | :orange_circle: | Dump OOM killer state |
+| `oomctl-status` | :orange_circle: | Show systemd-oomd status |
+| `systemd-analyze-blame` | :orange_circle: | Show unit startup blame |
+| `systemd-analyze-critical` | :orange_circle: | Show critical chain |
+| `systemd-analyze-plot` | :orange_circle: | Generate boot plot |
+| `systemd-analyze-dot` | :orange_circle: | Generate dependency graph |
+| `systemd-analyze-security` | :orange_circle: | Security audit unit |
+| `systemd-analyze-unit` | :orange_circle: | Show unit paths |
+| `systemd-analyze-verify` | :orange_circle: | Verify unit file |
+
 ### Round 311 — Coredumpctl ext, Busctl ext, Networkctl ext, Portablectl ext, Userdbctl ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 6ee001c..447e498 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -23559,4 +23559,56 @@
 
 (def (cmd-userdbctl-services app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Userdbctl: listing services")))
\ No newline at end of file
+    (echo-message! echo "Userdbctl: listing services")))
+
+;;; Round 312 — Homectl ext, Oomctl ext, Systemd-analyze ext (batch 2)
+
+(def (cmd-homectl-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Username to inspect: "
+      (lambda (user)
+        (echo-message! echo (str "Homectl: inspecting home of " user))))))
+
+(def (cmd-oomctl-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Oomctl: dumping OOM killer state")))
+
+(def (cmd-oomctl-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Oomctl: showing systemd-oomd status")))
+
+(def (cmd-systemd-analyze-blame app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Systemd-analyze: showing blame")))
+
+(def (cmd-systemd-analyze-critical app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Systemd-analyze: showing critical chain")))
+
+(def (cmd-systemd-analyze-plot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Systemd-analyze: generating boot plot")))
+
+(def (cmd-systemd-analyze-dot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Unit pattern: "
+      (lambda (pat)
+        (echo-message! echo (str "Systemd-analyze: generating dot for " pat))))))
+
+(def (cmd-systemd-analyze-security app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Unit to audit: "
+      (lambda (unit)
+        (echo-message! echo (str "Systemd-analyze: security audit of " unit))))))
+
+(def (cmd-systemd-analyze-unit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Unit paths: "
+      (lambda (unit)
+        (echo-message! echo (str "Systemd-analyze: unit paths for " unit))))))
+
+(def (cmd-systemd-analyze-verify app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Unit to verify: "
+      (lambda (unit)
+        (echo-message! echo (str "Systemd-analyze: verifying " unit))))))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index d02f9b2..c2bb38a 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -24284,3 +24284,51 @@
       (lambda (iface)
         (echo-message! echo (str "Networkctl: status of " iface))))))
 
+;;; Round 312 — Resolvectl ext, Bootctl ext, Homectl ext, Oomctl ext, Systemd-analyze ext (batch 1)
+
+(def (cmd-resolvectl-monitor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Resolvectl: starting DNS monitor")))
+
+(def (cmd-resolvectl-log-level app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Log level: "
+      (lambda (lvl)
+        (echo-message! echo (str "Resolvectl: setting log level to " lvl))))))
+
+(def (cmd-resolvectl-reset app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Resolvectl: resetting server features")))
+
+(def (cmd-bootctl-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bootctl: showing boot loader status")))
+
+(def (cmd-bootctl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bootctl: listing boot entries")))
+
+(def (cmd-bootctl-install app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bootctl: installing boot loader")))
+
+(def (cmd-bootctl-update app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Bootctl: updating boot loader")))
+
+(def (cmd-homectl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Homectl: listing home directories")))
+
+(def (cmd-homectl-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Username to create: "
+      (lambda (user)
+        (echo-message! echo (str "Homectl: creating home for " user))))))
+
+(def (cmd-homectl-remove app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Username to remove: "
+      (lambda (user)
+        (echo-message! echo (str "Homectl: removing home for " user))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 71a80af..3773f26 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7969,4 +7969,25 @@
   (register-command! 'userdbctl-group cmd-userdbctl-group)
   (register-command! 'userdbctl-members cmd-userdbctl-members)
   (register-command! 'userdbctl-services cmd-userdbctl-services)
+  ;; Round 312
+  (register-command! 'resolvectl-monitor cmd-resolvectl-monitor)
+  (register-command! 'resolvectl-log-level cmd-resolvectl-log-level)
+  (register-command! 'resolvectl-reset cmd-resolvectl-reset)
+  (register-command! 'bootctl-status cmd-bootctl-status)
+  (register-command! 'bootctl-list cmd-bootctl-list)
+  (register-command! 'bootctl-install cmd-bootctl-install)
+  (register-command! 'bootctl-update cmd-bootctl-update)
+  (register-command! 'homectl-list cmd-homectl-list)
+  (register-command! 'homectl-create cmd-homectl-create)
+  (register-command! 'homectl-remove cmd-homectl-remove)
+  (register-command! 'homectl-inspect cmd-homectl-inspect)
+  (register-command! 'oomctl-dump cmd-oomctl-dump)
+  (register-command! 'oomctl-status cmd-oomctl-status)
+  (register-command! 'systemd-analyze-blame cmd-systemd-analyze-blame)
+  (register-command! 'systemd-analyze-critical cmd-systemd-analyze-critical)
+  (register-command! 'systemd-analyze-plot cmd-systemd-analyze-plot)
+  (register-command! 'systemd-analyze-dot cmd-systemd-analyze-dot)
+  (register-command! 'systemd-analyze-security cmd-systemd-analyze-security)
+  (register-command! 'systemd-analyze-unit cmd-systemd-analyze-unit)
+  (register-command! 'systemd-analyze-verify cmd-systemd-analyze-verify)
 )