Round 333: Lsof-ext ext, Fuser ext, Lsns ext, Lsipc ext, Lsmem ext (20 commands)
ober
cf38d379f1c55bdb7c20ba5892cd3b0fca2ae4c7
--- 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 333 — Lsof-ext ext, Fuser ext, Lsns ext, Lsipc ext, Lsmem ext + +| Feature | Status | Notes | +|---------|--------|-------| +| `lsof-network` | :orange_circle: | Show network connections | +| `lsof-process` | :orange_circle: | Files by PID | +| `lsof-file` | :orange_circle: | Processes using file | +| `lsof-user` | :orange_circle: | Files by user | +| `fuser-file` | :orange_circle: | Processes using file | +| `fuser-mount` | :orange_circle: | Processes on mount | +| `fuser-signal` | :orange_circle: | Signal processes | +| `fuser-verbose` | :orange_circle: | Verbose file usage | +| `lsns-show` | :orange_circle: | List namespaces | +| `lsns-type` | :orange_circle: | List by type | +| `lsns-pid` | :orange_circle: | Namespaces by PID | +| `lsns-json` | :orange_circle: | JSON output | +| `lsipc-show` | :orange_circle: | Show IPC facilities | +| `lsipc-semaphore` | :orange_circle: | Show semaphores | +| `lsipc-shared` | :orange_circle: | Show shared memory | +| `lsipc-message` | :orange_circle: | Show message queues | +| `lsmem-show` | :orange_circle: | Show memory ranges | +| `lsmem-json` | :orange_circle: | JSON output | +| `lsmem-summary` | :orange_circle: | Memory summary | +| `lsmem-ranges` | :orange_circle: | All memory ranges | + ### Round 332 — Slabtop ext, Pmap ext, Smem ext, Fincore ext, Lslocks ext | Feature | Status | Notes | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -24691,4 +24691,48 @@ (let* ((echo (app-state-echo app))) (echo-read-string echo "PID: " (lambda (pid) - (echo-message! echo (str "Lslocks: showing locks for PID " pid)))))) \ No newline at end of file + (echo-message! echo (str "Lslocks: showing locks for PID " pid)))))) + +;;; Round 333 — Lsns ext, Lsipc ext, Lsmem ext (batch 2) + +(def (cmd-lsns-pid app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Lsns: namespaces for PID " pid)))))) + +(def (cmd-lsns-json app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsns: showing namespaces as JSON"))) + +(def (cmd-lsipc-show app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsipc: showing IPC facilities"))) + +(def (cmd-lsipc-semaphore app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsipc: showing semaphores"))) + +(def (cmd-lsipc-shared app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsipc: showing shared memory segments"))) + +(def (cmd-lsipc-message app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsipc: showing message queues"))) + +(def (cmd-lsmem-show app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsmem: showing memory ranges"))) + +(def (cmd-lsmem-json app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsmem: showing memory as JSON"))) + +(def (cmd-lsmem-summary app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsmem: showing memory summary"))) + +(def (cmd-lsmem-ranges app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsmem: showing all memory ranges"))) \ No newline at end of file --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -25392,3 +25392,61 @@ (let* ((echo (app-state-echo app))) (echo-message! echo "Smem: showing per-process memory"))) +;;; Round 333 — Lsof-ext ext, Fuser ext, Lsns ext, Lsipc ext, Lsmem ext (batch 1) + +(def (cmd-lsof-network app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsof: showing network connections"))) + +(def (cmd-lsof-process app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "PID: " + (lambda (pid) + (echo-message! echo (str "Lsof: files opened by PID " pid)))))) + +(def (cmd-lsof-file app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "File: " + (lambda (file) + (echo-message! echo (str "Lsof: processes using " file)))))) + +(def (cmd-lsof-user app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "User: " + (lambda (user) + (echo-message! echo (str "Lsof: files opened by " user)))))) + +(def (cmd-fuser-file app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "File: " + (lambda (file) + (echo-message! echo (str "Fuser: processes using " file)))))) + +(def (cmd-fuser-mount app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Mount point: " + (lambda (mnt) + (echo-message! echo (str "Fuser: processes using " mnt)))))) + +(def (cmd-fuser-signal app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Signal and file: " + (lambda (spec) + (echo-message! echo (str "Fuser: sending signal " spec)))))) + +(def (cmd-fuser-verbose app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "File: " + (lambda (file) + (echo-message! echo (str "Fuser: verbose info for " file)))))) + +(def (cmd-lsns-show app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Lsns: listing namespaces"))) + +(def (cmd-lsns-type app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Type (pid/net/mnt/user): " + (lambda (t) + (echo-message! echo (str "Lsns: listing " t " namespaces")))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -8410,4 +8410,25 @@ (register-command! 'lslocks-json cmd-lslocks-json) (register-command! 'lslocks-noheading cmd-lslocks-noheading) (register-command! 'lslocks-pid cmd-lslocks-pid) + ;; Round 333 + (register-command! 'lsof-network cmd-lsof-network) + (register-command! 'lsof-process cmd-lsof-process) + (register-command! 'lsof-file cmd-lsof-file) + (register-command! 'lsof-user cmd-lsof-user) + (register-command! 'fuser-file cmd-fuser-file) + (register-command! 'fuser-mount cmd-fuser-mount) + (register-command! 'fuser-signal cmd-fuser-signal) + (register-command! 'fuser-verbose cmd-fuser-verbose) + (register-command! 'lsns-show cmd-lsns-show) + (register-command! 'lsns-type cmd-lsns-type) + (register-command! 'lsns-pid cmd-lsns-pid) + (register-command! 'lsns-json cmd-lsns-json) + (register-command! 'lsipc-show cmd-lsipc-show) + (register-command! 'lsipc-semaphore cmd-lsipc-semaphore) + (register-command! 'lsipc-shared cmd-lsipc-shared) + (register-command! 'lsipc-message cmd-lsipc-message) + (register-command! 'lsmem-show cmd-lsmem-show) + (register-command! 'lsmem-json cmd-lsmem-json) + (register-command! 'lsmem-summary cmd-lsmem-summary) + (register-command! 'lsmem-ranges cmd-lsmem-ranges) )