Integrate rl::cleanpath into rl::rdlink, becaus it was only used once

Adding some best practices for printf
This commit is contained in:
2022-03-30 23:13:33 +02:00
parent aaa796d4b4
commit bcea07f134

View File

@@ -24,7 +24,7 @@ function rl::log () {
local log_line=""
while IFS=$'\n' read -r log_line; do
printf "%s [%9s] %s\n" "$(date -u +"%Y-%m-%d %H:%M:%S UTC")" "${log_level}" "${log_line}" 1>&2
printf '%s [%9s] %s\n' "$(date -u +"%Y-%m-%d %H:%M:%S UTC")" "${log_level}" "${log_line}" 1>&2
done <<< "${@:-}"
}
emergency() { rl::log emergency "${@}"; exit 1; }
@@ -39,13 +39,16 @@ msg() { echo "$@"; true; }
### Script
rl::rdlink() {
local subject=
local subject="${1:-}"
local work=
info "Processing: $*"
info "Processing: ${subject}"
info " with pwd: $(pwd)"
subject="$(rl::cleanpath "${1:-}")" || true
# Remove multiple /
while [[ "${subject:-}" = *"//"* ]]; do
subject="${subject/\/\///}"
done
# Follow multiple symlinks
while subject="$(rl::quicklink "${subject}")" ; do
@@ -60,7 +63,7 @@ rl::rdlink() {
# (e.g. /proc/**/cwd)
if [ -L "${subject}" ] ; then
info " rl::rdlink exit - can't access link ${subject}"
printf "\n"
printf '\n'
return 1
fi
}
@@ -68,13 +71,13 @@ rl::rdlink() {
# Empty output if (dirname $subject) is not a valid path
if ! work="$(rl::canon "${subject}")" ; then
info " rl::rdlink exit - invalid path ${work}"
printf "\n"
printf '\n'
return 1
else
subject="${work}"
fi
printf "%s\n" "${subject}"
printf '%s\n' "${subject}"
}
rl::quicklink() {
@@ -85,7 +88,7 @@ rl::quicklink() {
# Check if current candidate is a symlink
if ! subject=$(readlink -- "${1:-}"); then
printf -- "%s\n" "${1:-}"
printf -- '%s\n' "${1:-}"
return 1
fi
info " rl::quicklink symlink ${1} -> ${subject}"
@@ -97,7 +100,7 @@ rl::quicklink() {
info " rl::quicklink relative link resolved: ${subject}"
fi
printf "%s\n" "${subject}"
printf '%s\n' "${subject}"
return 0
}
@@ -124,7 +127,7 @@ rl::canon() {
bname="$(basename -- "${start}")"
# Special: / produces //
[[ "${work}" == "/" ]] && work=
[[ "${work}" = "/" ]] && work=
subject="${work}${bname:+"/${bname}"}"
info " rl::canon valid parent: ${subject}"
@@ -156,26 +159,10 @@ rl::canon() {
fi
done
printf -- "%s\n" "${subject}"
printf -- '%s\n' "${subject}"
return ${retval}
}
rl::cleanpath() {
local work=
local rex_tmp=
info "Cleaning path... ${1:-}"
work="${1:-}"
# Remove multiple /
while [[ "${work:-}" = *"//"* ]]; do
work="${work/\/\///}"
done
info " rl::cleanpath result: ${work}"
printf -- "%s\n" "${work}"
}
rl::normalize() {
local work=
@@ -204,9 +191,11 @@ rl::normalize() {
fi
info " rl::normalize result: ${work}"
printf -- "%s\n" "${work}"
printf -- '%s\n' "${work}"
}
### Script Starter EOF
rl::main() {
local file=
local arg=