mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2025-10-07 07:22:36 +02:00
Merge 476b0916c7d89576c6296cd03248fa3eed89bc56 into c43f390f07098c42db5efce654b07870951b512a
This commit is contained in:
commit
7ea37beb6d
23
.local/bin/fixnames
Normal file
23
.local/bin/fixnames
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/dash
|
||||||
|
|
||||||
|
[ -z "${1}" ] && {
|
||||||
|
printf "%s\n" "Specify a file path as an argument. e.g., fixnames <path>" >&2
|
||||||
|
exit "1"
|
||||||
|
}
|
||||||
|
|
||||||
|
[ "$(id -u)" = "0" ] && printf "%s\n" "This script should not be run as root" >&2 && exit "1"
|
||||||
|
|
||||||
|
find "${1}" -depth \( -path '*/.*' -o -path '*/.*/*' -o -path '.' \) -prune -o \( -type f -o -type d \) -print0 | sort -zr | xargs -0 -P "0" -I {} dash -c '
|
||||||
|
|
||||||
|
base="${1##*/}"
|
||||||
|
path="${1%/*}"
|
||||||
|
|
||||||
|
pattern="s/[^a-zA-Z0-9 ._-]//g; s/[ .-]/_/g; s/_+/_/g; s/^_+//; s/_+$//; s/[A-Z]/\L&/g"
|
||||||
|
|
||||||
|
[ -f "${1}" ] && pattern="${pattern}; s/_([^_]+)$/.\\1/"
|
||||||
|
|
||||||
|
new_name="$(printf "%s\n" "${base}" | sed -E "${pattern}")"
|
||||||
|
|
||||||
|
[ "${base}" != "${new_name}" ] && [ -e "${path}/${new_name}" ] && new_name="${$}_${new_name}"
|
||||||
|
[ "${base}" != "${new_name}" ] && mv "${1}" "${path}/${new_name}"
|
||||||
|
' _ {}
|
||||||
Loading…
x
Reference in New Issue
Block a user