Round 290: Dmesg ext, Kernel Log ext, Modprobe ext, Sysctl ext, Procfs ext (20 commands)
ober
aea0723c305523d2393f8d43a4850353e689a307
--- 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 290 — Dmesg ext, Kernel Log ext, Modprobe ext, Sysctl ext, Procfs ext + +| Command | Status | Description | +|---------|--------|-------------| +| dmesg-filter | :orange_circle: | Filter dmesg output | +| dmesg-follow | :orange_circle: | Follow dmesg live | +| dmesg-clear | :orange_circle: | Clear dmesg buffer | +| dmesg-level | :orange_circle: | Filter by log level | +| kern-log-view | :orange_circle: | View kernel log | +| kern-log-search | :orange_circle: | Search kernel log | +| kern-log-tail | :orange_circle: | Tail kernel log | +| kern-log-level | :orange_circle: | Set kernel log level | +| modprobe-load | :orange_circle: | Load kernel module | +| modprobe-remove | :orange_circle: | Remove kernel module | +| modprobe-list | :orange_circle: | List loaded modules | +| modprobe-info | :orange_circle: | Show module info | +| lsmod-list | :orange_circle: | List kernel modules | +| depmod-rebuild | :orange_circle: | Rebuild module deps | +| sysctl-list | :orange_circle: | List sysctl parameters | +| sysctl-get | :orange_circle: | Get sysctl value | +| sysctl-set | :orange_circle: | Set sysctl value | +| sysctl-reload | :orange_circle: | Reload sysctl config | +| procfs-read | :orange_circle: | Read /proc entry | +| procfs-write | :orange_circle: | Write /proc entry | + ### Round 289 — User mgmt ext, Group mgmt ext, Login ext, Faillock ext, Getent ext | Command | Status | Description | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -22383,4 +22383,56 @@ (def (cmd-getent-hosts app) (let* ((echo (app-state-echo app))) - (echo-message! echo "Getent: querying hosts database"))) \ No newline at end of file + (echo-message! echo "Getent: querying hosts database"))) + +;;; Round 290 — Modprobe ext, Sysctl ext, Procfs ext (batch 2) + +(def (cmd-modprobe-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Modprobe: listing loaded modules"))) + +(def (cmd-modprobe-info app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Module: " + (lambda (mod) + (echo-message! echo (str "Modprobe: info for " mod)))))) + +(def (cmd-lsmod-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsmod: listing kernel modules"))) + +(def (cmd-depmod-rebuild app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Depmod: rebuilding module dependencies"))) + +(def (cmd-sysctl-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Sysctl: listing parameters"))) + +(def (cmd-sysctl-get app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Parameter: " + (lambda (param) + (echo-message! echo (str "Sysctl: " param)))))) + +(def (cmd-sysctl-set app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Parameter=value: " + (lambda (pv) + (echo-message! echo (str "Sysctl: setting " pv)))))) + +(def (cmd-sysctl-reload app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Sysctl: reloading configuration"))) + +(def (cmd-procfs-read app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "/proc path: " + (lambda (path) + (echo-message! echo (str "Procfs: reading " path)))))) + +(def (cmd-procfs-write app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "/proc path: " + (lambda (path) + (echo-message! echo (str "Procfs: writing to " path)))))) \ No newline at end of file --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -23064,3 +23064,57 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "Login: listing active sessions"))) +;;; Round 290 — Dmesg ext, Kernel Log ext, Modprobe ext (batch 1) + +(def (cmd-dmesg-filter app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Filter: " + (lambda (flt) + (echo-message! echo (str "Dmesg: filtering by " flt)))))) + +(def (cmd-dmesg-follow app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Dmesg: following kernel messages"))) + +(def (cmd-dmesg-clear app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Dmesg: clearing ring buffer"))) + +(def (cmd-dmesg-level app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Level (0-7): " + (lambda (lvl) + (echo-message! echo (str "Dmesg: filtering level " lvl)))))) + +(def (cmd-kern-log-view app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Kernel: viewing kernel log"))) + +(def (cmd-kern-log-search app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Search: " + (lambda (term) + (echo-message! echo (str "Kernel: searching for " term)))))) + +(def (cmd-kern-log-tail app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Kernel: tailing kernel log"))) + +(def (cmd-kern-log-level app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Log level: " + (lambda (lvl) + (echo-message! echo (str "Kernel: setting log level " lvl)))))) + +(def (cmd-modprobe-load app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Module: " + (lambda (mod) + (echo-message! echo (str "Modprobe: loading " mod)))))) + +(def (cmd-modprobe-remove app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Module: " + (lambda (mod) + (echo-message! echo (str "Modprobe: removing " mod)))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -7507,4 +7507,25 @@ (register-command! 'getent-passwd cmd-getent-passwd) (register-command! 'getent-group cmd-getent-group) (register-command! 'getent-hosts cmd-getent-hosts) + ;; Round 290 + (register-command! 'dmesg-filter cmd-dmesg-filter) + (register-command! 'dmesg-follow cmd-dmesg-follow) + (register-command! 'dmesg-clear cmd-dmesg-clear) + (register-command! 'dmesg-level cmd-dmesg-level) + (register-command! 'kern-log-view cmd-kern-log-view) + (register-command! 'kern-log-search cmd-kern-log-search) + (register-command! 'kern-log-tail cmd-kern-log-tail) + (register-command! 'kern-log-level cmd-kern-log-level) + (register-command! 'modprobe-load cmd-modprobe-load) + (register-command! 'modprobe-remove cmd-modprobe-remove) + (register-command! 'modprobe-list cmd-modprobe-list) + (register-command! 'modprobe-info cmd-modprobe-info) + (register-command! 'lsmod-list cmd-lsmod-list) + (register-command! 'depmod-rebuild cmd-depmod-rebuild) + (register-command! 'sysctl-list cmd-sysctl-list) + (register-command! 'sysctl-get cmd-sysctl-get) + (register-command! 'sysctl-set cmd-sysctl-set) + (register-command! 'sysctl-reload cmd-sysctl-reload) + (register-command! 'procfs-read cmd-procfs-read) + (register-command! 'procfs-write cmd-procfs-write) )