summaryrefslogtreecommitdiffhomepage
path: root/subr/rtl_fileop.subr
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2020-03-15 09:14:23 +0000
committerLucio Andrés Illanes Albornoz <lucio@lucioillanes.de>2020-03-15 09:14:23 +0000
commitb6a9a1a3c8b98077cce47d579069c42080d17da5 (patch)
tree56301493a28e098de840c21b6d7e2776dd5574a1 /subr/rtl_fileop.subr
parent3e295f4e81f867fbd8b6c9c306bc1ca124e41d8b (diff)
downloadmidipix_build-b6a9a1a3c8b98077cce47d579069c42080d17da5.tar.bz2
midipix_build-b6a9a1a3c8b98077cce47d579069c42080d17da5.tar.xz
General cleanup.
Diffstat (limited to 'subr/rtl_fileop.subr')
-rw-r--r--subr/rtl_fileop.subr98
1 files changed, 56 insertions, 42 deletions
diff --git a/subr/rtl_fileop.subr b/subr/rtl_fileop.subr
index c2b403fa..fd45f67f 100644
--- a/subr/rtl_fileop.subr
+++ b/subr/rtl_fileop.subr
@@ -2,123 +2,137 @@
# set +o errexit -o noglob is assumed.
#
-exp_rtl_fileop_check() {
+#
+# Private globals and subroutines
+#
+RTLP_FILEOP_LOG=0;
+rtl_fileop_set_log() { RTLP_FILEOP_LOG="${1}"; };
+
+rtlp_fileop_check() {
local _prefix="${1}" _pname="" _rname=""; shift;
while [ "${#}" -gt 0 ]; do
return 0;
shift; done;
};
+rtlp_fileop_log() {
+ local _msg="${1}";
+ if [ "${RTLP_FILEOP_LOG:-0}" -eq 1 ]; then
+ rtl_log_msg debug "${_msg}";
+ fi;
+};
+
+
rtl_fileop() {
local _op="${1}" _dst="" _mode="" _install_args="" _owner="" _rc=0 _src=""; shift;
case "${_op}" in
cd) if [ \( -z "${1}" \) -o ! \( -L "${1}" -o -e "${1}" \) ]; then
- rtl_log_msg failexit "Invalid or non-existent directory \`${1}'.";
- elif exp_rtl_fileop_check "${PREFIX}" "${1}"; then
- rtl_log_msg vvvv "Changing working directory to \`${1}'.";
+ rtl_log_msg fatalexit "Invalid or non-existent directory \`%s'." "${1}";
+ elif rtlp_fileop_check "${PREFIX}" "${1}"; then
+ rtlp_fileop_log "Changing working directory to \`${1}'.";
cd -- "${1}"; _rc="${?}";
fi; ;;
chmod) if [ "${#}" -lt 2 ]; then
- rtl_log_msg failexit "Missing parameters (in: chmod ${*}.)";
+ rtl_log_msg fatalexit "Missing parameters (in: chmod %s.)" "${*}";
elif _mode="${1}" && shift\
- && exp_rtl_fileop_check "${PREFIX}" "${*}"; then
- rtl_log_msg vvvv "Changing file mode bits of \`${*}' to \`${_mode}'.";
+ && rtlp_fileop_check "${PREFIX}" "${*}"; then
+ rtlp_fileop_log "Changing file mode bits of \`${*}' to \`${_mode}'.";
chmod -- "${_mode}" "${@}"; _rc="${?}";
fi; ;;
chown) if [ "${#}" -lt 2 ]; then
- rtl_log_msg failexit "Missing parameters (in: chown ${*}.)";
+ rtl_log_msg fatalexit "Missing parameters (in: chown %s.)" "${*}";
elif _owner="${1}" && shift\
- && exp_rtl_fileop_check "${PREFIX}" "${*}"; then
- rtl_log_msg vvvv "Changing file owner of \`${*}' to \`${_owner}'.";
+ && rtlp_fileop_check "${PREFIX}" "${*}"; then
+ rtlp_fileop_log "Changing file owner of \`${*}' to \`${_owner}'.";
chown -- "${_owner}" "${@}"; _rc="${?}";
fi; ;;
cp_follow)
if [ "${#}" -lt 2 ]; then
- rtl_log_msg failexit "Missing parameters (in: cp_follow ${*}.)";
- elif exp_rtl_fileop_check "${PREFIX}" "${*}"; then
+ rtl_log_msg fatalexit "Missing parameters (in: cp_follow %s}.)" "${*}";
+ elif rtlp_fileop_check "${PREFIX}" "${*}"; then
_src="${*}"; _src="${_src% *}";
_dst="${*}"; _dst="${_dst##* }";
- rtl_log_msg vvvv "Copying \`${_src}' into \`${_dst}' w/ -pLR.";
+ rtlp_fileop_log "Copying \`${_src}' into \`${_dst}' w/ -pLR.";
cp -pLR -- "${@}"; _rc="${?}";
fi; ;;
cp) if [ "${#}" -lt 2 ]; then
- rtl_log_msg failexit "Missing parameters (in: cp ${*}.)";
- elif exp_rtl_fileop_check "${PREFIX}" "${*}"; then
+ rtl_log_msg fatalexit "Missing parameters (in: cp %s.)" "${*}";
+ elif rtlp_fileop_check "${PREFIX}" "${*}"; then
_src="${*}"; _src="${_src% *}";
_dst="${*}"; _dst="${_dst##* }";
- rtl_log_msg vvvv "Copying \`${_src}' into \`${_dst}' w/ -pPR.";
+ rtlp_fileop_log "Copying \`${_src}' into \`${_dst}' w/ -pPR.";
cp -pPR -- "${@}"; _rc="${?}";
fi; ;;
install)
if [ "${#}" -lt 2 ]; then
- rtl_log_msg failexit "Missing parameters (in: install ${*}.)";
- else _dst="$(while [ ""${#}"" -gt 2 ]; do shift; done; echo "${2}")";
- _install_args="$(while [ ""${#}"" -gt 2 ]; do echo "${1}"; shift; done)";
- _src="$(while [ ""${#}"" -gt 2 ]; do shift; done; echo "${1}")";
- if exp_rtl_fileop_check "${PREFIX}" "${_dst}" "${_src}"; then
- rtl_log_msg vvvv "Installing \`${_src}' into \`${_dst}' w/ ${_install_args}.";
+ rtl_log_msg fatalexit "Missing parameters (in: install %s.)" "${*}";
+ else _dst="$(while [ ""${#}"" -gt 2 ]; do shift; done; printf "%s" "${2}")";
+ _install_args="$(while [ ""${#}"" -gt 2 ]; do printf "%s" "${1}"; shift; done)";
+ _src="$(while [ ""${#}"" -gt 2 ]; do shift; done; printf "%s" "${1}")";
+ if rtlp_fileop_check "${PREFIX}" "${_dst}" "${_src}"; then
+ rtlp_fileop_log "Installing \`${_src}' into \`${_dst}' w/ ${_install_args}.";
install "${@}"; _rc="${?}";
fi;
fi; ;;
ln_symbolic)
if [ \( -z "${1}" \) -o \( -z "${2}" \) ]; then
- rtl_log_msg failexit "Missing parameters (in: ln_symbolic ${*}.)";
- elif exp_rtl_fileop_check "${PREFIX}" "${2}"; then
+ rtl_log_msg fatalexit "Missing parameters (in: ln_symbolic %s.)" "${*}";
+ elif rtlp_fileop_check "${PREFIX}" "${2}"; then
if rtl_fileop test "${2}"; then
rtl_fileop rm "${2}";
fi;
if [ "${?}" -eq 0 ]; then
- rtl_log_msg vvvv "Linking \`${1}' to \`${2}' w/ -fs";
+ rtlp_fileop_log "Linking \`${1}' to \`${2}' w/ -fs";
ln -fs -- "${1}" "${2}"; _rc="${?}";
fi;
fi; ;;
mv) if [ \( -z "${1}" \) -o \( -z "${2}" \) ]; then
- rtl_log_msg failexit "Missing parameters (in: mv ${*}.)";
- elif exp_rtl_fileop_check "${PREFIX}" "${1}" "${2}"; then
- rtl_log_msg vvvv "Moving \`${1}' to \`${2}' w/ -fs";
+ rtl_log_msg fatalexit "Missing parameters (in: mv %s.)" "${*}";
+ elif rtlp_fileop_check "${PREFIX}" "${1}" "${2}"; then
+ rtlp_fileop_log "Moving \`${1}' to \`${2}' w/ -fs";
mv -f -- "${1}" "${2}"; _rc="${?}";
fi; ;;
mkdir|mkfifo|rm|source_opt|test|touch)
while [ \( "${?}" -eq 0 \) -a \( ""${#}"" -gt 0 \) ]; do
if [ -z "${1}" ]; then
- rtl_log_msg failexit "Missing parameters (in: ${_op} ${*}.)";
+ rtl_log_msg fatalexit "Missing parameters (in: %s %s.)" "${_op}" "${*}";
elif [ "${_op}" = mkdir ]\
&& [ ! -d "${1}" ]\
- && exp_rtl_fileop_check "${PREFIX}" "${1}"; then
+ && rtlp_fileop_check "${PREFIX}" "${1}"; then
if rtl_fileop test "${1}"; then
rtl_fileop rm "${1}";
fi;
- rtl_log_msg vvvv "Making directory \`${1}'.";
+ rtlp_fileop_log "Making directory \`${1}'.";
mkdir -p -- "${1}"; _rc="${?}";
elif [ "${_op}" = mkfifo ]\
- && exp_rtl_fileop_check "${PREFIX}" "${1}"; then
+ && rtlp_fileop_check "${PREFIX}" "${1}"; then
if rtl_fileop test "${1}"; then
rtl_fileop rm "${1}";
fi;
- rtl_log_msg vvvv "Creating FIFO \`${1}'.";
- exp_rtl_fileop_check "${PREFIX}" "${1}";
+ rtlp_fileop_log "Creating FIFO \`${1}'.";
+ rtlp_fileop_check "${PREFIX}" "${1}";
mkfifo -- "${1}"; _rc="${?}";
elif [ "${_op}" = rm ]\
&& rtl_fileop test "${1}"\
- && exp_rtl_fileop_check "${PREFIX}" "${1}"; then
- rtl_log_msg vvvv "Removing directory or file \`${1}'.";
+ && rtlp_fileop_check "${PREFIX}" "${1}"; then
+ rtlp_fileop_log "Removing directory or file \`${1}'.";
rm -rf -- "${1}"; _rc="${?}";
elif [ "${_op}" = source_opt ]\
&& rtl_fileop test "${1}"\
- && exp_rtl_fileop_check "${PREFIX}" "${1}"; then
- rtl_log_msg vvvv "Sourcing file \`${1}'.";
+ && rtlp_fileop_check "${PREFIX}" "${1}"; then
+ rtlp_fileop_log "Sourcing file \`${1}'.";
. "${1}"; _rc="${?}";
elif [ "${_op}" = test ]\
- && exp_rtl_fileop_check "${PREFIX}" "${1}"\
+ && rtlp_fileop_check "${PREFIX}" "${1}"\
&& ! [ \( -L "${1}" \) -o \( -e "${1}" \) ]; then
return 1;
elif [ "${_op}" = touch ]\
- && exp_rtl_fileop_check "${PREFIX}" "${1}"; then
- rtl_log_msg vvvv "Touching file \`${1}'.";
+ && rtlp_fileop_check "${PREFIX}" "${1}"; then
+ rtlp_fileop_log "Touching file \`${1}'.";
touch -- "${1}"; _rc="${?}";
fi; shift;
done; ;;
- *) rtl_log_msg failexit "Error: rtl_fileop() called w/ invalid parameter(s): ${*}"; ;;
+ *) rtl_log_msg fatalexit "Error: rtl_fileop() called w/ invalid parameter(s): %s" "${*}"; ;;
esac; return "${_rc}";
};