ditch `echo` for `printf` & redirect error messages to standard output stream

This commit is contained in:
xosefulk 2021-06-04 14:19:26 +06:00
parent 850ca56ff7
commit 14b734ad42
No known key found for this signature in database
GPG Key ID: 1FA9C3DC72E53008
16 changed files with 116 additions and 108 deletions

View File

@ -27,7 +27,7 @@
# Check if we are in a git repo # Check if we are in a git repo
if ! git status >/dev/null; then if ! git status >/dev/null; then
echo "Not a git repo... exiting" printf "%s\n" "Not a git repo... exiting" >> /dev/stderr
exit 1 exit 1
fi fi
@ -46,19 +46,20 @@ fi
# This will likely exit firh error, because repoman # This will likely exit firh error, because repoman
# has to download some files (metadata.xsd) # has to download some files (metadata.xsd)
# We do that so we can truthfully test the actual latest commit # We do that so we can truthfully test the actual latest commit
echo ">>> Starting full test" printf "%s\n" \
echo "Running repoman -Idix" ">>> Starting full test" \
"Running repoman -Idix"
repoman -Idix repoman -Idix
echo "Running pkgcheck scan" printf "%s\n" "Running pkgcheck scan"
pkgcheck scan pkgcheck scan
echo ">>> Starting latest commit test" printf "%s\n" ">>> Starting latest commit test"
test_success=true test_success=true
# Use pkgchek # Use pkgchek
echo "Running pkgcheck scan --commits" printf "%s\n" "Running pkgcheck scan --commits"
pkgcheck scan --commits || test_success=false pkgcheck scan --commits || test_success=false
# Iterate through changed files in last commit # Iterate through changed files in last commit
@ -78,9 +79,9 @@ do
if cd "${commit_dir}" if cd "${commit_dir}"
then then
echo printf "\n%s\n" \
echo "Directory $(pwd):" "Directory $(pwd):" \
echo "Running repoman -Idix" "Running repoman -Idix"
repoman -Idix || test_success=false repoman -Idix || test_success=false
cd - >/dev/null || return cd - >/dev/null || return
fi fi
@ -89,7 +90,7 @@ done
# If any of the QA tools fail the test will fail # If any of the QA tools fail the test will fail
if [ ${test_success} = false ] if [ ${test_success} = false ]
then then
echo ">>> Exiting with failure due to previous errors..." printf "%s\n" ">>> Exiting with failure due to previous errors..." >> /dev/stderr
exit 1 exit 1
else else
exit 0 exit 0

View File

@ -69,8 +69,12 @@ do
done done
# Output info with colors. # Output info with colors.
echo -e "\e[1;33m${PACKAGE}\e[0m" purple=$'\e[1;35m'
echo -e " \e[1;35mPortage:\e[0m${PORTPACK_VERS}" esc=$'\e[0m'
echo -e " \e[1;35mOverlay:\e[0m${OVERPACK_VERS}"
printf "%s\n" \
"${purple}${PACKAGE}${esc}" \
" ${purple}Portage:${esc}${PORTPACK_VERS}" \
" ${purple}Overlay:${esc}${OVERPACK_VERS}"
fi fi
done done

View File

@ -46,11 +46,12 @@ reset="$(tput sgr0)"
ok_msg() { ok_msg() {
echo "${bold}${green}* ${white}${1}${reset}" printf "%s\n" "${bold}${green}* ${white}${1}${reset}"
} }
err_msg() { err_msg() {
echo "${bold}${red}* ${white}${1}${reset}" # redirect error messages to standard error stream
printf "%s\n" "${bold}${red}* ${white}${1}${reset}" >> /dev/stderr
} }
usage() { usage() {
@ -103,7 +104,7 @@ do
if [ "${known_unique#*${pkg}}" = "${known_unique}" ] if [ "${known_unique#*${pkg}}" = "${known_unique}" ]
then then
nnuniq=$((nnuniq + 1)) nnuniq=$((nnuniq + 1))
echo printf "\n"
ok_msg "Package ${nnuniq} ${pkg}:" ok_msg "Package ${nnuniq} ${pkg}:"
use_eix --exact --force-color "${pkg}" use_eix --exact --force-color "${pkg}"
fi fi

View File

@ -36,5 +36,5 @@ then
su root -c "rm -fr ${cache}" || exit 1 su root -c "rm -fr ${cache}" || exit 1
fi fi
else else
echo "No pre-generated md5-cache found in ${cache}" printf "%s\n" "No pre-generated md5-cache found in ${cache}" >> /dev/stderr
fi fi

View File

@ -34,8 +34,9 @@ package="${package_directory%/}"
error_no_version() { error_no_version() {
echo "[ERROR]: No version given" printf "%s\n" \
echo " Ran with option: ${1}" "[ERROR]: No version given" \
" Ran with option: ${1}" >> /dev/stderr
exit 1 exit 1
} }
@ -45,11 +46,11 @@ git add .
case "${1}" case "${1}"
in in
"" ) "" )
echo "[DEBUG]: no additional arguments/options given" printf "%s\n" "[DEBUG]: no additional arguments/options given" >> /dev/stderr
repoman commit repoman commit
;; ;;
-b | --bump ) -b | --bump )
echo "[DEBUG]: to be: ${package}: bump to ${2}" printf "%s\n" "[DEBUG]: to be: ${package}: bump to ${2}"
if [ -n "${2}" ] if [ -n "${2}" ]
then then
repoman commit -m "${package}: bump to ${2}" repoman commit -m "${package}: bump to ${2}"
@ -58,7 +59,7 @@ in
fi fi
;; ;;
-d | --drop ) -d | --drop )
echo "[DEBUG]: to be: ${package}: drop old ${2}" printf "%s\n" "[DEBUG]: to be: ${package}: drop old ${2}"
if [ -n "${2}" ] if [ -n "${2}" ]
then then
repoman commit -m "${package}: drop old ${2}" repoman commit -m "${package}: drop old ${2}"
@ -67,11 +68,11 @@ in
fi fi
;; ;;
-* ) -* )
echo "[ERROR]: Unknown option ${1}" printf "%s\n" "[ERROR]: Unknown option ${1}" >> /dev/stderr
exit 1 exit 1
;; ;;
* ) * )
echo "[DEBUG]: to be: ${package}: ${*}" printf "%s\n" "[DEBUG]: to be: ${package}: ${*}"
repoman commit -m "${package}: ${*}" repoman commit -m "${package}: ${*}"
;; ;;
esac esac

View File

@ -54,7 +54,7 @@ do
# we want this to be privileged on Gentoo systems # we want this to be privileged on Gentoo systems
if [ "$(whoami)" != root ] && [ -z "${EPREFIX}" ] if [ "$(whoami)" != root ] && [ -z "${EPREFIX}" ]
then then
echo "Switching to the root account" printf "%s\n" "Switching to the root account"
su root -c "ebuild ${ebuild} clean test merge" su root -c "ebuild ${ebuild} clean test merge"
else else
ebuild "${ebuild}" clean test merge ebuild "${ebuild}" clean test merge

View File

@ -58,7 +58,7 @@ eprefix_addpath() {
PATH=${1}:${PATH} PATH=${1}:${PATH}
export PATH export PATH
else else
echo "${eprefix_warn} ${1} not found" printf "%s\n" "${eprefix_warn} ${1} not found" >> /dev/stderr
fi fi
} }
@ -68,7 +68,7 @@ eprefix_addman() {
MANPATH=${1}:${MANPATH} MANPATH=${1}:${MANPATH}
export MANPATH export MANPATH
else else
echo "${eprefix_warn} ${1} not found" printf "%s\n" "${eprefix_warn} ${1} not found" >> /dev/stderr
fi fi
} }
@ -95,9 +95,10 @@ case ${-} in
: :
;; ;;
* ) * )
echo "${eprefix_bad} Error: not a login shell" printf "%s\n" \
echo "${eprefix_bad} Run: source ${0}" "${eprefix_bad} Error: not a login shell" \
echo ">>> Exiting the shell" "${eprefix_bad} Run: source ${0}" \
">>> Exiting the shell" >> /dev/stderr
exit 1 exit 1
;; ;;
esac esac
@ -105,8 +106,9 @@ esac
# Exit if eprefix does not exist # Exit if eprefix does not exist
if [ ! -d "${EPREFIX}" ] if [ ! -d "${EPREFIX}" ]
then then
echo "${eprefix_bad} No ${EPREFIX} found!" printf "%s\n" \
echo ">>> Exiting the shell" "${eprefix_bad} No ${EPREFIX} found!" \
">>> Exiting the shell" >> /dev/stderr
sleep 3 sleep 3
exit 1 exit 1
fi fi
@ -178,44 +180,42 @@ FEATURES="${FEATURES} -usersandbox -sandbox"
export FEATURES export FEATURES
# Check if we are on a prefix profile # Check if we are on a prefix profile
echo "" printf "\n"
if command_exists eselect if command_exists eselect
then then
eprofile="$(eselect profile show)" eprofile="$(eselect profile show)"
if [[ "${eprofile}" == *prefix* ]] if [[ "${eprofile}" == *prefix* ]]
then then
echo "${eprefix_good} ${eprofile}" printf "%s\n" "${eprefix_good} ${eprofile}"
else else
echo "${eprefix_bad} You are not on a prefix profile" printf "%s\n" "${eprefix_bad} You are not on a prefix profile" >> /dev/stderr
fi fi
unset eprofile unset eprofile
else else
echo "${eprefix_bad} Could not determine running profile" printf "%s\n" "${eprefix_bad} Could not determine running profile" >> /dev/stderr
fi fi
# >>> Finish # >>> Finish
echo "" printf "\n%s\n" \
echo ">>> Sourced the eprefix script" ">>> Sourced the eprefix script\n" \
echo "" "${eprefix_good} Prefix: ${EPREFIX}" \
echo "${eprefix_good} Prefix: ${EPREFIX}" "${eprefix_good} Packages: $(eprefix_packages)" \
echo "${eprefix_good} Packages: $(eprefix_packages)" "${eprefix_good} In World: $(eprefix_world)" \
echo "${eprefix_good} In World: $(eprefix_world)" "${eprefix_good} Have fun! ;-)"
echo "${eprefix_good} Have fun! ;-)"
if command_exists emerge if command_exists emerge
then then
echo "" printf "\n%s\n" ">>> Environment ready"
echo ">>> Environment ready"
else else
echo "" printf "\n%s\n" \
echo "${eprefix_bad} Could not locate emerge" "${eprefix_bad} Could not locate emerge" \
echo "${eprefix_bad} Environment may be broken" "${eprefix_bad} Environment may be broken" \
echo ">>> Continuing anyway..." ">>> Continuing anyway..." >> /dev/stderr
fi fi

View File

@ -31,9 +31,10 @@ export PATH
if [ -z "${1}" ] if [ -z "${1}" ]
then then
echo "No overlay names given" printf "%s\n" \
echo "Please give at least one overlay name as a commandline argument" "No overlay names given" \
echo "Exiting" "Please give at least one overlay name as a commandline argument" \
"Exiting" >> /dev/stderr
exit 1 exit 1
fi fi
@ -43,5 +44,5 @@ do
do do
euscan --nocolor --quiet "${ebuild}" | tee -a "euscan-${overlay}.log" euscan --nocolor --quiet "${ebuild}" | tee -a "euscan-${overlay}.log"
done done
echo ">>> Done scanning ${overlay}" printf "%s\n" ">>> Done scanning ${overlay}"
done done

View File

@ -21,8 +21,8 @@
function scanning(){ function scanning(){
EUSCAN=$(euscan --nocolor --quiet "$1") EUSCAN=$(euscan --nocolor --quiet "$1")
if [ -n "$EUSCAN" ]; then if [ -n "$EUSCAN" ]; then
echo "=============== NOW: $(find ./* -mindepth 2 -maxdepth 2 -name ''"$1"'*.ebuild' | tail -1) ================= printf "%s\n" "=============== NOW: $(find ./* -mindepth 2 -maxdepth 2 -name ''"$1"'*.ebuild' | tail -1) =================
$(echo -e "$EUSCAN" | tail -1)" $(printf "%s\n" "$EUSCAN" | tail -1)"
fi fi
} }
@ -33,7 +33,7 @@ function folder(){
for FILE in */* for FILE in */*
do do
PACKAGE=$(echo "$FILE" | grep -Eo '[A-z0-9_-]+$') PACKAGE=$(printf "%s\n" "$FILE" | grep -Eo '[A-z0-9_-]+$')
PACKAGES+=("$PACKAGE") PACKAGES+=("$PACKAGE")
done done
@ -47,14 +47,15 @@ function folder(){
wait "$j" wait "$j"
done done
echo -n ">>> Done scanning $1" printf "%s\n" ">>> Done scanning $1"
} }
function nofolder(){ function nofolder(){
if [ -z "${1}" ]; then if [ -z "${1}" ]; then
echo "No overlay names given" printf "%s\n" \
echo "Please give at least one overlay name as a commandline argument" "No overlay names given" \
echo "Exiting" "Please give at least one overlay name as a commandline argument" \
"Exiting" >> /dev/stderr
exit 1 exit 1
fi fi
@ -70,23 +71,23 @@ do
wait "$j" wait "$j"
done done
echo -n ">>> Done scanning ${overlay}" printf "%s\n" ">>> Done scanning ${overlay}"
done done
} }
function help(){ function help(){
echo "You can use:" printf "%s\n" \
echo "* -r or --repo <HERE-REPO-NAME>" "You can use:" \
echo "* -f or --folder <FOLDER-NAME>" "* -r or --repo <HERE-REPO-NAME>" \
echo "* -f or --folder <FOLDER-NAME>\n" \
echo "Example of usage" "Example of usage" \
echo "./euscan-parallel -r src_prepare-overlay" "./euscan-parallel -r src_prepare-overlay" \
echo "./euscan-parallel -f ~/git/src_prepare-overlay" "./euscan-parallel -f ~/git/src_prepare-overlay"
} }
function main(){ function main(){
[ "$(whereis eix | wc -w)" -le "1" ] && { echo "The eix is NOT installed"; exit; } [ "$(whereis eix | wc -w)" -le "1" ] && { printf "%s\n" "The eix is NOT installed" >> /dev/stderr; exit; }
[ "$(whereis euscan | wc -w)" -le "1" ] && { echo "The euscan is NOT installed"; exit; } [ "$(whereis euscan | wc -w)" -le "1" ] && { printf "%s\n" "The euscan is NOT installed" >> /dev/stderr; exit; }
case $1 in case $1 in
-h|--help) -h|--help)
help help
@ -98,7 +99,7 @@ function main(){
folder "$2" | tee -a "euscan-$(date -I).log" folder "$2" | tee -a "euscan-$(date -I).log"
;; ;;
*) *)
echo "No found variable"; echo; help printf "%s\n" "No found variable" >> /dev/stderr; printf "\n"; help
esac esac
} }

View File

@ -26,7 +26,7 @@ export PATH
emsg() { emsg() {
echo "$(tput bold)$(tput setaf 6)>>> $(tput setaf 4)$(date +%H:%M:%S)$(tput setaf 7) ${*} $(tput sgr0)" printf "%s\n" "$(tput bold)$(tput setaf 6)>>> $(tput setaf 4)$(date +%H:%M:%S)$(tput setaf 7) ${*} $(tput sgr0)"
} }
edie() { edie() {

View File

@ -74,15 +74,15 @@ main() {
ebuild="$(basename "$(pwd)")-9999.ebuild" ebuild="$(basename "$(pwd)")-9999.ebuild"
if [ ! -f "${ebuild}" ] if [ ! -f "${ebuild}" ]
then then
echo "${ebuild_template}" > "${ebuild}" printf "%s\n" "${ebuild_template}" > "${ebuild}"
else else
echo "Already exists: ${ebuild}" printf "%s\n" "Already exists: ${ebuild}" >> /dev/stderr
fi fi
if [ ! -f "metadata.xml" ] if [ ! -f "metadata.xml" ]
then then
echo "${metadata_template}" > "metadata.xml" printf "%s\n" "${metadata_template}" > "metadata.xml"
else else
echo "Already exists: metadata.xml" printf "%s\n" "Already exists: metadata.xml" >> /dev/stderr
fi fi
} }
@ -91,10 +91,11 @@ if [ -f ../../profiles/repo_name ]
then then
main main
else else
echo "Are you in a overlay repo?" printf "%s\n" \
echo "To use this script successfully:" "Are you in a overlay repo?" \
echo "1. Create a \${CATEGOTY}/\${PN} directory" "To use this script successfully:" \
echo "2. Change directory to it" "1. Create a \${CATEGOTY}/\${PN} directory" \
echo "3. Execute ${0}" "2. Change directory to it" \
"3. Execute ${0}" >> /dev/stderr
exit 1 exit 1
fi fi

2
src/pn
View File

@ -26,4 +26,4 @@ trap 'exit 128' INT
cd "${1:-$(pwd)}" || exit 1 cd "${1:-$(pwd)}" || exit 1
path="$(git rev-parse --show-prefix)" path="$(git rev-parse --show-prefix)"
echo "${path%/}" printf "%s\n" "${path%/}"

View File

@ -24,7 +24,7 @@
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Must specify a file to modify..." printf "%s\n" "Must specify a file to modify..."
exit 1 exit 1
fi fi
regex='^=?(\S+)(?:-[[:digit:]]+\S*)(\s)(\S+)$' regex='^=?(\S+)(?:-[[:digit:]]+\S*)(\s)(\S+)$'

View File

@ -36,12 +36,13 @@ main() {
case ${1} case ${1}
in in
-h | -help | --help ) -h | -help | --help )
echo "Usage: ${0}" printf "%s\n" \
echo "Performed in this script:" "Usage: ${0}" \
echo "1. remove Manifest file" "Performed in this script:" \
echo "2. regen Manifest with 'repoman manifest'" "1. remove Manifest file" \
echo "3. Check with 'repoman -Idx full'" "2. regen Manifest with 'repoman manifest'" \
echo "4. Check with 'pkgcheck scan'" "3. Check with 'repoman -Idx full'" \
"4. Check with 'pkgcheck scan'"
;; ;;
* ) * )
main main

View File

@ -48,12 +48,13 @@ ignored_dirs=(
# This will likely exit firh error, because repoman # This will likely exit firh error, because repoman
# has to download some files (metadata.xsd) # has to download some files (metadata.xsd)
# We do that so we can truthfully test the actual latest commit # We do that so we can truthfully test the actual latest commit
echo ">>> Starting full test" printf "%s\n" \
echo "Running repoman -Idix" ">>> Starting full test" \
"Running repoman -Idix"
repoman -Idix repoman -Idix
echo ">>> Starting latest commit test" printf "%s\n" ">>> Starting latest commit test"
# If any of the QA checks fail the test will fail # If any of the QA checks fail the test will fail
test_success=true test_success=true
@ -70,17 +71,16 @@ do
do do
if [[ "${commit_dir}" = *"${i_dir}"* ]] if [[ "${commit_dir}" = *"${i_dir}"* ]]
then then
echo printf "\n%s\n" "Ignoring ${commit_dir}"
echo "Ignoring ${commit_dir}"
continue 2 continue 2
fi fi
done done
if cd "${commit_dir}" if cd "${commit_dir}"
then then
echo printf "\n%s\n" \
echo "Checking ${commit_dir}" "Checking ${commit_dir}" \
echo "Running repoman -Idix" "Running repoman -Idix"
repoman -Idix || test_success="false" repoman -Idix || test_success="false"
cd - >/dev/null || return cd - >/dev/null || return
fi fi
@ -88,9 +88,9 @@ done
if [ "${test_success}" = "false" ] if [ "${test_success}" = "false" ]
then then
echo ">>> Exiting with failure due to previous errors" printf "%s\n" ">>> Exiting with failure due to previous errors" >> /dev/stderr
exit 1 exit 1
else else
echo ">>> Exiting successfully" printf "%s\n" ">>> Exiting successfully"
exit 0 exit 0
fi fi

15
test.sh
View File

@ -30,16 +30,15 @@ exit_result=0
run_test() { run_test() {
for file in ${2} for file in ${2}
do do
echo "File ${file}... checking" printf "%s\n" "File ${file}... checking"
if command "${1}" "${file}" if command "${1}" "${file}"
then then
echo " file is correct" printf "%s\n" " file is correct"
else else
echo " there were errors found in the file" printf "%s\n" " there were errors found in the file" >> /dev/stderr
exit_result=1 exit_result=1
fi fi
echo "Done: ${file}" printf "%s\n\n" "Done: ${file}"
echo
done done
} }
@ -52,11 +51,9 @@ run_test pylint "${py_files}"
if [ ${exit_result} = 0 ] if [ ${exit_result} = 0 ]
then then
echo "No errors reported" printf "%s\n" "No errors reported" "Exiting successfully"
echo "Exiting successfully"
exit ${exit_result} exit ${exit_result}
else else
echo "Some errors reported" printf "%s\n" "Some errors reported" "Exiting without success" >> /dev/stderr
echo "Exiting without success"
exit ${exit_result} exit ${exit_result}
fi fi