Round 291: SMART ext, Hdparm ext, Blkid ext, Fdisk ext, Mkfs ext (20 commands)

ober

9368ae08ffb26e90b640e1c726fa6fb0d2bad4f0

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 1d551d8..823b183 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 291 — SMART ext, Hdparm ext, Blkid ext, Fdisk ext, Mkfs ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| smartctl-info | :orange_circle: | Show SMART info |
+| smartctl-test | :orange_circle: | Run SMART test |
+| smartctl-health | :orange_circle: | Check disk health |
+| smartctl-log | :orange_circle: | Show SMART log |
+| hdparm-info | :orange_circle: | Show disk parameters |
+| hdparm-benchmark | :orange_circle: | Benchmark disk |
+| hdparm-power | :orange_circle: | Disk power management |
+| hdparm-cache | :orange_circle: | Disk cache settings |
+| blkid-list | :orange_circle: | List block devices |
+| blkid-info | :orange_circle: | Show device info |
+| lsblk-tree | :orange_circle: | Tree view of devices |
+| lsblk-detail | :orange_circle: | Detailed device list |
+| fdisk-list | :orange_circle: | List partitions |
+| fdisk-partition | :orange_circle: | Partition device |
+| parted-list | :orange_circle: | List partitions (parted) |
+| parted-resize | :orange_circle: | Resize partition |
+| mkfs-ext4 | :orange_circle: | Create ext4 filesystem |
+| mkfs-xfs | :orange_circle: | Create XFS filesystem |
+| mkfs-btrfs | :orange_circle: | Create Btrfs filesystem |
+| tune2fs-info | :orange_circle: | Show ext filesystem info |
+
 ### Round 290 — Dmesg ext, Kernel Log ext, Modprobe ext, Sysctl ext, Procfs ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index eabbcc8..c4371b2 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -22435,4 +22435,58 @@
   (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
+        (echo-message! echo (str "Procfs: writing to " path))))))
+
+;;; Round 291 — Fdisk ext, Mkfs ext (batch 2)
+
+(def (cmd-lsblk-tree app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lsblk: tree view of block devices")))
+
+(def (cmd-lsblk-detail app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Lsblk: detailed block device list")))
+
+(def (cmd-fdisk-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fdisk: listing partitions")))
+
+(def (cmd-fdisk-partition app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Fdisk: partitioning " dev))))))
+
+(def (cmd-parted-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Parted: listing partitions")))
+
+(def (cmd-parted-resize app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Partition: "
+      (lambda (part)
+        (echo-message! echo (str "Parted: resizing " part))))))
+
+(def (cmd-mkfs-ext4 app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Mkfs: creating ext4 on " dev))))))
+
+(def (cmd-mkfs-xfs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Mkfs: creating XFS on " dev))))))
+
+(def (cmd-mkfs-btrfs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Mkfs: creating Btrfs on " dev))))))
+
+(def (cmd-tune2fs-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Tune2fs: info for " 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 ba825f2..5f5eb5b 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -23118,3 +23118,63 @@
       (lambda (mod)
         (echo-message! echo (str "Modprobe: removing " mod))))))
 
+;;; Round 291 — SMART ext, Hdparm ext, Blkid ext (batch 1)
+
+(def (cmd-smartctl-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "SMART: info for " dev))))))
+
+(def (cmd-smartctl-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "SMART: testing " dev))))))
+
+(def (cmd-smartctl-health app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "SMART: health of " dev))))))
+
+(def (cmd-smartctl-log app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "SMART: log for " dev))))))
+
+(def (cmd-hdparm-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Hdparm: info for " dev))))))
+
+(def (cmd-hdparm-benchmark app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Hdparm: benchmarking " dev))))))
+
+(def (cmd-hdparm-power app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Hdparm: power management " dev))))))
+
+(def (cmd-hdparm-cache app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Hdparm: cache settings " dev))))))
+
+(def (cmd-blkid-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Blkid: listing block devices")))
+
+(def (cmd-blkid-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Device: "
+      (lambda (dev)
+        (echo-message! echo (str "Blkid: info for " dev))))))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 50cc12e..e38a83b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7528,4 +7528,25 @@
   (register-command! 'sysctl-reload cmd-sysctl-reload)
   (register-command! 'procfs-read cmd-procfs-read)
   (register-command! 'procfs-write cmd-procfs-write)
+  ;; Round 291
+  (register-command! 'smartctl-info cmd-smartctl-info)
+  (register-command! 'smartctl-test cmd-smartctl-test)
+  (register-command! 'smartctl-health cmd-smartctl-health)
+  (register-command! 'smartctl-log cmd-smartctl-log)
+  (register-command! 'hdparm-info cmd-hdparm-info)
+  (register-command! 'hdparm-benchmark cmd-hdparm-benchmark)
+  (register-command! 'hdparm-power cmd-hdparm-power)
+  (register-command! 'hdparm-cache cmd-hdparm-cache)
+  (register-command! 'blkid-list cmd-blkid-list)
+  (register-command! 'blkid-info cmd-blkid-info)
+  (register-command! 'lsblk-tree cmd-lsblk-tree)
+  (register-command! 'lsblk-detail cmd-lsblk-detail)
+  (register-command! 'fdisk-list cmd-fdisk-list)
+  (register-command! 'fdisk-partition cmd-fdisk-partition)
+  (register-command! 'parted-list cmd-parted-list)
+  (register-command! 'parted-resize cmd-parted-resize)
+  (register-command! 'mkfs-ext4 cmd-mkfs-ext4)
+  (register-command! 'mkfs-xfs cmd-mkfs-xfs)
+  (register-command! 'mkfs-btrfs cmd-mkfs-btrfs)
+  (register-command! 'tune2fs-info cmd-tune2fs-info)
 )