Round 311: Coredumpctl ext, Busctl ext, Networkctl ext, Portablectl ext, Userdbctl ext (20 commands)

ober

d95097e41b3823953b25eddcf8edc34da65e7cdc

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 5e19223..e6989a9 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 311 — Coredumpctl ext, Busctl ext, Networkctl ext, Portablectl ext, Userdbctl ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `coredumpctl-list` | :orange_circle: | List coredumps |
+| `coredumpctl-info` | :orange_circle: | Show coredump info |
+| `coredumpctl-dump` | :orange_circle: | Extract coredump |
+| `coredumpctl-gdb` | :orange_circle: | Debug coredump with GDB |
+| `busctl-list` | :orange_circle: | List D-Bus services |
+| `busctl-monitor` | :orange_circle: | Monitor D-Bus traffic |
+| `busctl-call` | :orange_circle: | Call D-Bus method |
+| `busctl-introspect` | :orange_circle: | Introspect D-Bus object |
+| `networkctl-list` | :orange_circle: | List network links |
+| `networkctl-status` | :orange_circle: | Show network status |
+| `networkctl-up` | :orange_circle: | Bring interface up |
+| `networkctl-down` | :orange_circle: | Bring interface down |
+| `portablectl-list` | :orange_circle: | List portable services |
+| `portablectl-attach` | :orange_circle: | Attach portable image |
+| `portablectl-detach` | :orange_circle: | Detach portable image |
+| `portablectl-inspect` | :orange_circle: | Inspect portable image |
+| `userdbctl-user` | :orange_circle: | Show user info |
+| `userdbctl-group` | :orange_circle: | Show group info |
+| `userdbctl-members` | :orange_circle: | List group members |
+| `userdbctl-services` | :orange_circle: | List userdb services |
+
 ### Round 310 — Loginctl ext, Machinectl ext, Hostnamectl ext, Timedatectl ext, Localectl ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 31a006d..6ee001c 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -23501,4 +23501,62 @@
 
 (def (cmd-localectl-list-keymaps app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Localectl: listing keymaps")))
\ No newline at end of file
+    (echo-message! echo "Localectl: listing keymaps")))
+
+;;; Round 311 — Networkctl ext, Portablectl ext, Userdbctl ext (batch 2)
+
+(def (cmd-networkctl-up app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Interface to bring up: "
+      (lambda (iface)
+        (echo-message! echo (str "Networkctl: bringing up " iface))))))
+
+(def (cmd-networkctl-down app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Interface to bring down: "
+      (lambda (iface)
+        (echo-message! echo (str "Networkctl: bringing down " iface))))))
+
+(def (cmd-portablectl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Portablectl: listing portable services")))
+
+(def (cmd-portablectl-attach app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Image to attach: "
+      (lambda (img)
+        (echo-message! echo (str "Portablectl: attaching " img))))))
+
+(def (cmd-portablectl-detach app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Image to detach: "
+      (lambda (img)
+        (echo-message! echo (str "Portablectl: detaching " img))))))
+
+(def (cmd-portablectl-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Image to inspect: "
+      (lambda (img)
+        (echo-message! echo (str "Portablectl: inspecting " img))))))
+
+(def (cmd-userdbctl-user app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Username: "
+      (lambda (user)
+        (echo-message! echo (str "Userdbctl: showing user " user))))))
+
+(def (cmd-userdbctl-group app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Group name: "
+      (lambda (grp)
+        (echo-message! echo (str "Userdbctl: showing group " grp))))))
+
+(def (cmd-userdbctl-members app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Group for members: "
+      (lambda (grp)
+        (echo-message! echo (str "Userdbctl: listing members of " grp))))))
+
+(def (cmd-userdbctl-services app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Userdbctl: listing services")))
\ 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 e79a035..d02f9b2 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -24230,3 +24230,57 @@
       (lambda (name)
         (echo-message! echo (str "Hostnamectl: setting " name))))))
 
+;;; Round 311 — Coredumpctl ext, Busctl ext, Networkctl ext (batch 1)
+
+(def (cmd-coredumpctl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Coredumpctl: listing core dumps")))
+
+(def (cmd-coredumpctl-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PID/match: "
+      (lambda (m)
+        (echo-message! echo (str "Coredumpctl: info for " m))))))
+
+(def (cmd-coredumpctl-dump app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PID/match: "
+      (lambda (m)
+        (echo-message! echo (str "Coredumpctl: dumping " m))))))
+
+(def (cmd-coredumpctl-gdb app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PID/match: "
+      (lambda (m)
+        (echo-message! echo (str "Coredumpctl: GDB for " m))))))
+
+(def (cmd-busctl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Busctl: listing bus names")))
+
+(def (cmd-busctl-monitor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Busctl: monitoring bus")))
+
+(def (cmd-busctl-call app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Method: "
+      (lambda (method)
+        (echo-message! echo (str "Busctl: calling " method))))))
+
+(def (cmd-busctl-introspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Service: "
+      (lambda (svc)
+        (echo-message! echo (str "Busctl: introspecting " svc))))))
+
+(def (cmd-networkctl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Networkctl: listing links")))
+
+(def (cmd-networkctl-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Interface: "
+      (lambda (iface)
+        (echo-message! echo (str "Networkctl: status of " iface))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index d4931e3..71a80af 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7948,4 +7948,25 @@
   (register-command! 'localectl-set-locale cmd-localectl-set-locale)
   (register-command! 'localectl-set-keymap cmd-localectl-set-keymap)
   (register-command! 'localectl-list-keymaps cmd-localectl-list-keymaps)
+  ;; Round 311
+  (register-command! 'coredumpctl-list cmd-coredumpctl-list)
+  (register-command! 'coredumpctl-info cmd-coredumpctl-info)
+  (register-command! 'coredumpctl-dump cmd-coredumpctl-dump)
+  (register-command! 'coredumpctl-gdb cmd-coredumpctl-gdb)
+  (register-command! 'busctl-list cmd-busctl-list)
+  (register-command! 'busctl-monitor cmd-busctl-monitor)
+  (register-command! 'busctl-call cmd-busctl-call)
+  (register-command! 'busctl-introspect cmd-busctl-introspect)
+  (register-command! 'networkctl-list cmd-networkctl-list)
+  (register-command! 'networkctl-status cmd-networkctl-status)
+  (register-command! 'networkctl-up cmd-networkctl-up)
+  (register-command! 'networkctl-down cmd-networkctl-down)
+  (register-command! 'portablectl-list cmd-portablectl-list)
+  (register-command! 'portablectl-attach cmd-portablectl-attach)
+  (register-command! 'portablectl-detach cmd-portablectl-detach)
+  (register-command! 'portablectl-inspect cmd-portablectl-inspect)
+  (register-command! 'userdbctl-user cmd-userdbctl-user)
+  (register-command! 'userdbctl-group cmd-userdbctl-group)
+  (register-command! 'userdbctl-members cmd-userdbctl-members)
+  (register-command! 'userdbctl-services cmd-userdbctl-services)
 )