2 Commits

Author SHA1 Message Date
matmoul c56aec350d docs: tighten project conventions for mtm-ddwipe 2026-04-27 23:46:51 +02:00
matmoul 956cfd7325 fix: tighten mtm-ddwipe usage and device checks
Add an explicit mounted-device check with findmnt, shorten confirmation prompts, and align the usage text and log wording with the current script name.
2026-04-27 23:40:28 +02:00
2 changed files with 19 additions and 27 deletions
+10 -20
View File
@@ -3,30 +3,20 @@ description: mtm-ddwipe project conventions
---
# Project conventions
- Use English throughout the project.
- Keep shell scripts Bash-based.
- Preserve the current behavior of the main script: `mtm-ddwipe` wipes block devices.
- Strengthen destructive-action safety checks in `mtm-ddwipe`.
- Use English.
- Use Bash for shell scripts.
- Keep `mtm-ddwipe` focused on wiping block devices.
- Keep `mtm-ddwipe` interactive by default.
- Require explicit confirmation before destructive actions.
- Validate real block devices and refuse mounted or in-use targets.
- Show clear device details before confirmation.
- Check that target devices are not mounted or in use before wiping.
- Keep user-facing messages short and clear.
- Keep error and help messages short and clear.
- Prefer minimal, focused changes that preserve intent.
- Keep `.continue/rules/project.md` aligned with project conventions and concise.
- `mtm-ddwipe` is a small Bash script with helper functions.
- Keep the host and line-number removal behavior intact for related output processing.
- `mtm-ddwipe` must print a usage line and support `-h`/`--help`.
- Validate that wipe targets are real block devices before operating on them.
- Keep short, explicit confirmation prompts before destructive operations.
- Prefer confirmation prompts that require typing the target device path or an exact safety phrase.
- Keep help text concise, usage-first, and warning-focused.
- Keep destructive safeguards strict and explicit.
- If adding non-interactive support, make it an opt-in safety flag.
- Keep device identification prompts clear and specific.
- Preserve the fallback wipe flow: secure discard, zero discard, then zero-fill with `dd`.
- Keep timing and status output short and readable.
- Keep messages short and clear.
- Keep help concise, usage-first, and warning-focused.
- Preserve the fallback wipe flow: secure discard, zero discard, then `dd` zero-fill.
- Keep changes minimal and preserve intent.
- Keep `./continue/rules/project.md` aligned and concise.
- If non-interactive support is added, make it an opt-in safety flag.
# Project identity
- Main script: `mtm-ddwipe`
+9 -7
View File
@@ -8,7 +8,7 @@ STARTDATESTRING=""
usage() {
cat <<EOF
Usage: mtm-ddwipe-2 DEVICE
Usage: mtm-ddwipe DEVICE
Wipe a block device.
@@ -58,8 +58,12 @@ check_device() {
check_device_not_in_use() {
local dev="$1"
if findmnt -rn --target "$dev" >/dev/null 2>&1; then
die "Device is mounted: $dev"
fi
if lsblk -nrpo NAME,MOUNTPOINT "$dev" | awk '$2 != "" { found=1 } END { exit !found }'; then
die "Device or one of its children is mounted: $dev"
die "Device or child is mounted: $dev"
fi
}
@@ -67,13 +71,11 @@ confirm_wipe() {
local dev="$1"
local choice=""
echo "Selected device:"
echo "Device:"
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,MODEL,SERIAL "$dev"
echo ""
echo "This will destroy data on: $dev"
echo "Type exactly: WIPE $dev"
echo ""
read -r -p "Confirmation: " choice
read -r -p "Confirm: " choice
[ "$choice" = "WIPE $dev" ] || die "Canceled"
echo ""
}
@@ -143,7 +145,7 @@ wipe_dev() {
STARTDATE=$(date +%s)
STARTDATESTRING="$(date)"
log "Begin wiping device $dev"
log "Begin wiping: $dev"
echo ""
log "Start date :"
log "$STARTDATESTRING"