removing -_

This commit is contained in:
2025-10-30 15:36:47 +01:00
parent c6d2dc9b75
commit 26df4ffd8e

View File

@ -25,7 +25,7 @@
# Extension filter: # Extension filter:
# - Default: mp4 # - Default: mp4
# - "*" : all files # - "*" : all files
# - "jpg" : only .jpg (with or without leading dot accepted, e.g., "jpg" or ".jpg") # - "jpg" : only .jpg (with or without leading dot accepted, e.g. "jpg" or ".jpg")
# #
# Logging: # Logging:
# RENAME: "old_name.ext" => "new_name.ext" # RENAME: "old_name.ext" => "new_name.ext"
@ -78,7 +78,8 @@ rename_file() {
# Guard: identical path, nothing to do # Guard: identical path, nothing to do
if [[ "$src" == "$dst" ]]; then if [[ "$src" == "$dst" ]]; then
if (( DRY_RUN )); then if (( DRY_RUN )); then
log "NOCHANGE (dry-run): \"$(basename "$src")\" (nothing to do)" # CHANGE: add `--` so basename doesn't treat dash-prefixed names as options
log "NOCHANGE (dry-run): \"$(basename -- "$src")\" (nothing to do)"
fi fi
return 0 return 0
fi fi
@ -99,10 +100,12 @@ rename_file() {
done done
if (( DRY_RUN )); then if (( DRY_RUN )); then
log "RENAME: \"$(basename "$src")\" => \"$(basename "$candidate")\"" # CHANGE: add `--` for safe logging
log "RENAME: \"$(basename -- "$src")\" => \"$(basename -- "$candidate")\""
else else
mv -v -- "$src" "$candidate" >/dev/null mv -v -- "$src" "$candidate" >/dev/null
log "RENAME: \"$(basename "$src")\" => \"$(basename "$candidate")\"" # CHANGE: add `--` for safe logging
log "RENAME: \"$(basename -- "$src")\" => \"$(basename -- "$candidate")\""
fi fi
} }
@ -182,7 +185,8 @@ strip_reserved() {
local base ext token lw local base ext token lw
local -a parts new_parts=() local -a parts new_parts=()
base="$(basename "$name")" # CHANGE: pass `--` to basename for dash-prefixed names
base="$(basename -- "$name")"
ext="" ext=""
if [[ "$base" == *.* ]]; then if [[ "$base" == *.* ]]; then
ext=".${base##*.}" ext=".${base##*.}"
@ -243,15 +247,21 @@ fi
for path in "$DIR"/$pattern; do for path in "$DIR"/$pattern; do
[[ -f "$path" ]] || continue [[ -f "$path" ]] || continue
orig_basename="$(basename "$path")" orig_basename="$(basename -- "$path")"
# 1) remove reserved tokens from basename # NEW RULE (minimal): remove ALL leading dashes before processing
stripped="$(strip_reserved "$orig_basename")" clean_basename="$orig_basename"
while [[ "$clean_basename" == -* ]]; do
clean_basename="${clean_basename#-}"
done
# 1) remove reserved tokens from basename (on the cleaned name)
stripped="$(strip_reserved "$clean_basename")"
# 2 & 3) normalize (spaces -> "_", collapse "_", trim) # 2 & 3) normalize (spaces -> "_", collapse "_", trim)
new_name="$(normalize_name "$stripped")" new_name="$(normalize_name "$stripped")"
# NEW: If nothing changed, do not attempt to rename at all # If nothing changed, do not attempt to rename at all
if [[ "$new_name" == "$orig_basename" ]]; then if [[ "$new_name" == "$orig_basename" ]]; then
if (( DRY_RUN )); then if (( DRY_RUN )); then
log "NOCHANGE (dry-run): \"${orig_basename}\" (nothing to do)" log "NOCHANGE (dry-run): \"${orig_basename}\" (nothing to do)"