Round 284: LVM ext, ZFS ext, Btrfs ext, MDADM ext, LUKS ext (20 commands)

ober

3ba5b94b2dcec4a0e1cf4b6cb405e92c521d4d33

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 83e7d10..b8c147b 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 284 — LVM ext, ZFS ext, Btrfs ext, MDADM ext, LUKS ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| lvm-list | :orange_circle: | List LVM volumes |
+| lvm-create | :orange_circle: | Create LVM volume |
+| lvm-extend | :orange_circle: | Extend LVM volume |
+| lvm-reduce | :orange_circle: | Reduce LVM volume |
+| zfs-list | :orange_circle: | List ZFS datasets |
+| zfs-create | :orange_circle: | Create ZFS dataset |
+| zfs-snapshot | :orange_circle: | Create ZFS snapshot |
+| zfs-destroy | :orange_circle: | Destroy ZFS dataset |
+| btrfs-list | :orange_circle: | List Btrfs subvolumes |
+| btrfs-snapshot | :orange_circle: | Create Btrfs snapshot |
+| btrfs-balance | :orange_circle: | Start Btrfs balance |
+| btrfs-scrub | :orange_circle: | Start Btrfs scrub |
+| mdadm-status | :orange_circle: | Show RAID array status |
+| mdadm-create | :orange_circle: | Create RAID array |
+| mdadm-add | :orange_circle: | Add device to array |
+| mdadm-remove | :orange_circle: | Remove device from array |
+| luks-open | :orange_circle: | Open LUKS volume |
+| luks-close | :orange_circle: | Close LUKS volume |
+| luks-status | :orange_circle: | Show LUKS status |
+| luks-format | :orange_circle: | Format LUKS device |
+
 ### Round 283 — SELinux ext, AppArmor ext, Firewalld ext, Nftables ext, Iptables ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 53246a0..f78ed02 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -22073,4 +22073,58 @@
 
 (def (cmd-iptables-save app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Iptables: saving rules")))
\ No newline at end of file
+    (echo-message! echo "Iptables: saving rules")))
+
+;;; Round 284 — Btrfs ext, MDADM ext, LUKS ext (batch 2)
+
+(def (cmd-btrfs-balance app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Btrfs: starting balance")))
+
+(def (cmd-btrfs-scrub app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Btrfs: starting scrub")))
+
+(def (cmd-mdadm-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "MDADM: showing array status")))
+
+(def (cmd-mdadm-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Array name: "
+      (lambda (name)
+        (echo-message! echo (str "MDADM: creating " name))))))
+
+(def (cmd-mdadm-add app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "MDADM: adding " dev))))))
+
+(def (cmd-mdadm-remove app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "MDADM: removing " dev))))))
+
+(def (cmd-luks-open app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "LUKS: opening " dev))))))
+
+(def (cmd-luks-close app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Mapping name: "
+      (lambda (name)
+        (echo-message! echo (str "LUKS: closing " name))))))
+
+(def (cmd-luks-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LUKS: showing status")))
+
+(def (cmd-luks-format app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "LUKS: formatting " dev))))))
\ 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 847bea0..1fb3833 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -22728,3 +22728,59 @@
       (lambda (rule)
         (echo-message! echo (str "Firewalld: adding rule " rule))))))
 
+;;; Round 284 — LVM ext, ZFS ext, Btrfs ext (batch 1)
+
+(def (cmd-lvm-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LVM: listing volumes")))
+
+(def (cmd-lvm-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Volume name: "
+      (lambda (name)
+        (echo-message! echo (str "LVM: creating " name))))))
+
+(def (cmd-lvm-extend app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Volume: "
+      (lambda (vol)
+        (echo-message! echo (str "LVM: extending " vol))))))
+
+(def (cmd-lvm-reduce app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Volume: "
+      (lambda (vol)
+        (echo-message! echo (str "LVM: reducing " vol))))))
+
+(def (cmd-zfs-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "ZFS: listing datasets")))
+
+(def (cmd-zfs-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Dataset name: "
+      (lambda (name)
+        (echo-message! echo (str "ZFS: creating " name))))))
+
+(def (cmd-zfs-snapshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Dataset@snap: "
+      (lambda (snap)
+        (echo-message! echo (str "ZFS: snapshot " snap))))))
+
+(def (cmd-zfs-destroy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Dataset: "
+      (lambda (ds)
+        (echo-message! echo (str "ZFS: destroying " ds))))))
+
+(def (cmd-btrfs-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Btrfs: listing subvolumes")))
+
+(def (cmd-btrfs-snapshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Subvolume: "
+      (lambda (sub)
+        (echo-message! echo (str "Btrfs: snapshot " sub))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 31db53d..735144f 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7381,4 +7381,25 @@
   (register-command! 'iptables-add cmd-iptables-add)
   (register-command! 'iptables-delete cmd-iptables-delete)
   (register-command! 'iptables-save cmd-iptables-save)
+  ;; Round 284
+  (register-command! 'lvm-list cmd-lvm-list)
+  (register-command! 'lvm-create cmd-lvm-create)
+  (register-command! 'lvm-extend cmd-lvm-extend)
+  (register-command! 'lvm-reduce cmd-lvm-reduce)
+  (register-command! 'zfs-list cmd-zfs-list)
+  (register-command! 'zfs-create cmd-zfs-create)
+  (register-command! 'zfs-snapshot cmd-zfs-snapshot)
+  (register-command! 'zfs-destroy cmd-zfs-destroy)
+  (register-command! 'btrfs-list cmd-btrfs-list)
+  (register-command! 'btrfs-snapshot cmd-btrfs-snapshot)
+  (register-command! 'btrfs-balance cmd-btrfs-balance)
+  (register-command! 'btrfs-scrub cmd-btrfs-scrub)
+  (register-command! 'mdadm-status cmd-mdadm-status)
+  (register-command! 'mdadm-create cmd-mdadm-create)
+  (register-command! 'mdadm-add cmd-mdadm-add)
+  (register-command! 'mdadm-remove cmd-mdadm-remove)
+  (register-command! 'luks-open cmd-luks-open)
+  (register-command! 'luks-close cmd-luks-close)
+  (register-command! 'luks-status cmd-luks-status)
+  (register-command! 'luks-format cmd-luks-format)
 )