Round 339: Podman ext, Buildah ext, Skopeo ext, Crictl ext, Crun ext (20 commands)

ober

9eace40da06aa0a4fb7dec5259115e374c9c554b

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 50584a0..4c1b49b 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 339 — Podman ext, Buildah ext, Skopeo ext, Crictl ext, Crun ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| podman-ps | :orange_circle: | Podman: list running containers |
+| podman-images | :orange_circle: | Podman: list images |
+| podman-run | :orange_circle: | Podman: run a container |
+| podman-build | :orange_circle: | Podman: build an image |
+| buildah-from | :orange_circle: | Buildah: create container from image |
+| buildah-run | :orange_circle: | Buildah: run command in container |
+| buildah-commit | :orange_circle: | Buildah: commit container |
+| buildah-images | :orange_circle: | Buildah: list images |
+| skopeo-copy | :orange_circle: | Skopeo: copy image |
+| skopeo-inspect | :orange_circle: | Skopeo: inspect image |
+| skopeo-list | :orange_circle: | Skopeo: list tags |
+| skopeo-delete | :orange_circle: | Skopeo: delete image |
+| crictl-pods | :orange_circle: | Crictl: list pods |
+| crictl-containers | :orange_circle: | Crictl: list containers |
+| crictl-images | :orange_circle: | Crictl: list images |
+| crictl-stats | :orange_circle: | Crictl: container stats |
+| crun-spec | :orange_circle: | Crun: generate OCI spec |
+| crun-run | :orange_circle: | Crun: run container |
+| crun-list | :orange_circle: | Crun: list containers |
+| crun-state | :orange_circle: | Crun: show container state |
+
 ### Round 338 — Cgroups ext, Namespaces ext, Systemd-nspawn ext, Firejail ext, Bubblewrap ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 9665861..585fd90 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -24993,3 +24993,53 @@
     (echo-read-string echo "Bubblewrap tmpfs mount point: "
       (lambda (mnt)
         (echo-message! echo (str "Bubblewrap: mounting tmpfs at " mnt))))))
+
+;;; Round 339 — Skopeo ext, Crictl ext, Crun ext (batch 2)
+
+(def (cmd-skopeo-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Skopeo list tags for: "
+      (lambda (repo)
+        (echo-message! echo (str "Skopeo: listing tags for " repo))))))
+
+(def (cmd-skopeo-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Skopeo delete image: "
+      (lambda (img)
+        (echo-message! echo (str "Skopeo: deleting " img))))))
+
+(def (cmd-crictl-pods app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Crictl: listing pods")))
+
+(def (cmd-crictl-containers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Crictl: listing containers")))
+
+(def (cmd-crictl-images app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Crictl: listing images")))
+
+(def (cmd-crictl-stats app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Crictl: showing container stats")))
+
+(def (cmd-crun-spec app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Crun: generating OCI spec")))
+
+(def (cmd-crun-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Crun run container ID: "
+      (lambda (id)
+        (echo-message! echo (str "Crun: running container " id))))))
+
+(def (cmd-crun-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Crun: listing containers")))
+
+(def (cmd-crun-state app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Crun state container ID: "
+      (lambda (id)
+        (echo-message! echo (str "Crun: showing state of " id))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 49c2724..e8e125f 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -25688,3 +25688,59 @@
     (echo-read-string echo "Nspawn directory: "
       (lambda (dir)
         (echo-message! echo (str "Nspawn: running in directory " dir))))))
+
+;;; Round 339 — Podman ext, Buildah ext, Skopeo ext, Crictl ext, Crun ext (batch 1)
+
+(def (cmd-podman-ps app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Podman: listing running containers")))
+
+(def (cmd-podman-images app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Podman: listing images")))
+
+(def (cmd-podman-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Podman run image: "
+      (lambda (img)
+        (echo-message! echo (str "Podman: running " img))))))
+
+(def (cmd-podman-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Podman build context: "
+      (lambda (ctx)
+        (echo-message! echo (str "Podman: building from " ctx))))))
+
+(def (cmd-buildah-from app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Buildah from image: "
+      (lambda (img)
+        (echo-message! echo (str "Buildah: creating container from " img))))))
+
+(def (cmd-buildah-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Buildah run command: "
+      (lambda (cmd)
+        (echo-message! echo (str "Buildah: running " cmd))))))
+
+(def (cmd-buildah-commit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Buildah commit container: "
+      (lambda (ctr)
+        (echo-message! echo (str "Buildah: committing " ctr))))))
+
+(def (cmd-buildah-images app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Buildah: listing images")))
+
+(def (cmd-skopeo-copy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Skopeo copy source: "
+      (lambda (src)
+        (echo-message! echo (str "Skopeo: copying from " src))))))
+
+(def (cmd-skopeo-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Skopeo inspect image: "
+      (lambda (img)
+        (echo-message! echo (str "Skopeo: inspecting " img))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 7ce6c9e..f4cc556 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8540,4 +8540,26 @@
   (register-command! 'bubblewrap-bind cmd-bubblewrap-bind)
   (register-command! 'bubblewrap-network cmd-bubblewrap-network)
   (register-command! 'bubblewrap-tmpfs cmd-bubblewrap-tmpfs)
+
+  ;; Round 339 — Podman ext, Buildah ext, Skopeo ext, Crictl ext, Crun ext
+  (register-command! 'podman-ps cmd-podman-ps)
+  (register-command! 'podman-images cmd-podman-images)
+  (register-command! 'podman-run cmd-podman-run)
+  (register-command! 'podman-build cmd-podman-build)
+  (register-command! 'buildah-from cmd-buildah-from)
+  (register-command! 'buildah-run cmd-buildah-run)
+  (register-command! 'buildah-commit cmd-buildah-commit)
+  (register-command! 'buildah-images cmd-buildah-images)
+  (register-command! 'skopeo-copy cmd-skopeo-copy)
+  (register-command! 'skopeo-inspect cmd-skopeo-inspect)
+  (register-command! 'skopeo-list cmd-skopeo-list)
+  (register-command! 'skopeo-delete cmd-skopeo-delete)
+  (register-command! 'crictl-pods cmd-crictl-pods)
+  (register-command! 'crictl-containers cmd-crictl-containers)
+  (register-command! 'crictl-images cmd-crictl-images)
+  (register-command! 'crictl-stats cmd-crictl-stats)
+  (register-command! 'crun-spec cmd-crun-spec)
+  (register-command! 'crun-run cmd-crun-run)
+  (register-command! 'crun-list cmd-crun-list)
+  (register-command! 'crun-state cmd-crun-state)
 )