Round 282: Syslog ext, Journalctl ext, Logrotate ext, Rsyslog ext, Auditd ext (20 commands)

ober

18bac04eb8d24ccb3f7657fcfbf5c3c82835d91d

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 45a446e..f4842d7 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 282 — Syslog ext, Journalctl ext, Logrotate ext, Rsyslog ext, Auditd ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| syslog-view | :orange_circle: | View system log |
+| syslog-filter | :orange_circle: | Filter syslog by pattern |
+| syslog-tail | :orange_circle: | Tail syslog live |
+| syslog-search | :orange_circle: | Search syslog entries |
+| journalctl-view | :orange_circle: | View systemd journal |
+| journalctl-filter | :orange_circle: | Filter journal entries |
+| journalctl-priority | :orange_circle: | Filter by priority level |
+| journalctl-since | :orange_circle: | Show entries since time |
+| logrotate-status | :orange_circle: | Show logrotate status |
+| logrotate-force | :orange_circle: | Force log rotation |
+| rsyslog-config | :orange_circle: | View rsyslog configuration |
+| rsyslog-restart | :orange_circle: | Restart rsyslog service |
+| auditd-status | :orange_circle: | Show auditd status |
+| auditd-report | :orange_circle: | Generate audit report |
+| auditd-rules | :orange_circle: | List audit rules |
+| syslog-priority | :orange_circle: | Set syslog priority |
+| syslog-facility | :orange_circle: | Set syslog facility |
+| syslog-remote | :orange_circle: | Configure remote syslog |
+| syslog-archive | :orange_circle: | Archive syslog files |
+| journalctl-export | :orange_circle: | Export journal entries |
+
 ### Round 281 — DNS ext, LDAP ext, SNMP ext, NTP ext, DHCP ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 49222cb..abf346b 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -21973,4 +21973,54 @@
 
 (def (cmd-dhcp-renew app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "DHCP: renewing lease")))
\ No newline at end of file
+    (echo-message! echo "DHCP: renewing lease")))
+
+;;; Round 282 — Rsyslog ext, Auditd ext, Syslog ext (batch 2)
+
+(def (cmd-rsyslog-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Rsyslog: viewing configuration")))
+
+(def (cmd-rsyslog-restart app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Rsyslog: restarting service")))
+
+(def (cmd-auditd-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auditd: showing status")))
+
+(def (cmd-auditd-report app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auditd: generating report")))
+
+(def (cmd-auditd-rules app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auditd: listing rules")))
+
+(def (cmd-syslog-priority app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Priority level: "
+      (lambda (pri)
+        (echo-message! echo (str "Syslog: set priority " pri))))))
+
+(def (cmd-syslog-facility app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Facility: "
+      (lambda (fac)
+        (echo-message! echo (str "Syslog: set facility " fac))))))
+
+(def (cmd-syslog-remote app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Remote host: "
+      (lambda (host)
+        (echo-message! echo (str "Syslog: forwarding to " host))))))
+
+(def (cmd-syslog-archive app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Syslog: archiving logs")))
+
+(def (cmd-journalctl-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Export path: "
+      (lambda (path)
+        (echo-message! echo (str "Journalctl: exporting to " path))))))
\ 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 533737f..9794fc6 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -22624,3 +22624,55 @@
       (lambda (oid)
         (echo-message! echo (str "SNMP: WALK " oid))))))
 
+;;; Round 282 — Syslog ext, Journalctl ext, Logrotate ext (batch 1)
+
+(def (cmd-syslog-view app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Syslog: viewing system log")))
+
+(def (cmd-syslog-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Filter pattern: "
+      (lambda (pat)
+        (echo-message! echo (str "Syslog: filtering by " pat))))))
+
+(def (cmd-syslog-tail app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Syslog: tailing live log")))
+
+(def (cmd-syslog-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Search term: "
+      (lambda (term)
+        (echo-message! echo (str "Syslog: searching for " term))))))
+
+(def (cmd-journalctl-view app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Journalctl: viewing journal")))
+
+(def (cmd-journalctl-filter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Filter expression: "
+      (lambda (expr)
+        (echo-message! echo (str "Journalctl: filter " expr))))))
+
+(def (cmd-journalctl-priority app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Priority (0-7): "
+      (lambda (pri)
+        (echo-message! echo (str "Journalctl: priority " pri))))))
+
+(def (cmd-journalctl-since app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Since (e.g. '1 hour ago'): "
+      (lambda (since)
+        (echo-message! echo (str "Journalctl: since " since))))))
+
+(def (cmd-logrotate-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Logrotate: showing status")))
+
+(def (cmd-logrotate-force app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Logrotate: forcing rotation")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 1a5dc5d..7f1dec8 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7339,4 +7339,25 @@
   (register-command! 'dhcp-lease-list cmd-dhcp-lease-list)
   (register-command! 'dhcp-release cmd-dhcp-release)
   (register-command! 'dhcp-renew cmd-dhcp-renew)
+  ;; Round 282
+  (register-command! 'syslog-view cmd-syslog-view)
+  (register-command! 'syslog-filter cmd-syslog-filter)
+  (register-command! 'syslog-tail cmd-syslog-tail)
+  (register-command! 'syslog-search cmd-syslog-search)
+  (register-command! 'journalctl-view cmd-journalctl-view)
+  (register-command! 'journalctl-filter cmd-journalctl-filter)
+  (register-command! 'journalctl-priority cmd-journalctl-priority)
+  (register-command! 'journalctl-since cmd-journalctl-since)
+  (register-command! 'logrotate-status cmd-logrotate-status)
+  (register-command! 'logrotate-force cmd-logrotate-force)
+  (register-command! 'rsyslog-config cmd-rsyslog-config)
+  (register-command! 'rsyslog-restart cmd-rsyslog-restart)
+  (register-command! 'auditd-status cmd-auditd-status)
+  (register-command! 'auditd-report cmd-auditd-report)
+  (register-command! 'auditd-rules cmd-auditd-rules)
+  (register-command! 'syslog-priority cmd-syslog-priority)
+  (register-command! 'syslog-facility cmd-syslog-facility)
+  (register-command! 'syslog-remote cmd-syslog-remote)
+  (register-command! 'syslog-archive cmd-syslog-archive)
+  (register-command! 'journalctl-export cmd-journalctl-export)
 )