libmakepkg: fix regression in sending plain() output to stderr
In commit882e707e40
we changed message output to go to stdout by default, unless it was an error. The plain() function doesn't *look* like an error function, but in practice it was -- it's used to continue multiline messages, and all in-tree uses were for warning/error. This is a problem both because we're sending output to the wrong place, and because in some cases, we were performing error logging from a function which would otherwise return a value to be captured in a variable using command substution. Fix this and straighten out the API by providing two functions: one for continuing msg output, and one which wraps this by sending output to stderr, for continuing error output. Change all callers to use the second function. (cherry picked from commitbf458cced7
)
This commit is contained in:
parent
22e6daa794
commit
f4da297de2
12 changed files with 41 additions and 33 deletions
|
@ -43,7 +43,7 @@ get_vcsclient() {
|
|||
# if we didn't find an client, return an error
|
||||
if [[ -z $client ]]; then
|
||||
error "$(gettext "Unknown download protocol: %s")" "$proto"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_CONFIG_ERROR
|
||||
fi
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@ check_pgpsigs() {
|
|||
|
||||
if (( warnings )); then
|
||||
warning "$(gettext "Warnings have occurred while verifying the signatures.")"
|
||||
plain "$(gettext "Please make sure you really trust them.")"
|
||||
plainerr "$(gettext "Please make sure you really trust them.")"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ download_bzr() {
|
|||
msg2 "$(gettext "Branching %s...")" "${displaylocation}"
|
||||
if ! bzr branch "$url" "$dir" --no-tree --use-existing-dir; then
|
||||
error "$(gettext "Failure while branching %s")" "${displaylocation}"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
elif (( ! HOLDVER )); then
|
||||
|
@ -83,7 +83,7 @@ extract_bzr() {
|
|||
;;
|
||||
*)
|
||||
error "$(gettext "Unrecognized reference: %s")" "${fragment}"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
esac
|
||||
fi
|
||||
|
@ -98,12 +98,12 @@ extract_bzr() {
|
|||
cd_safe "${dir##*/}"
|
||||
if ! (bzr pull "$dir" -q --overwrite -r "$rev" && bzr clean-tree -q --detritus --force); then
|
||||
error "$(gettext "Failure while updating working copy of %s %s repo")" "${repo}" "bzr"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
elif ! bzr checkout "$dir" -r "$rev"; then
|
||||
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "bzr"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ download_file() {
|
|||
if ! command -- "${cmdline[@]}" >&2; then
|
||||
[[ ! -s $dlfile ]] && rm -f -- "$dlfile"
|
||||
error "$(gettext "Failure while downloading %s")" "$url"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -137,7 +137,7 @@ extract_file() {
|
|||
fi
|
||||
if (( ret )); then
|
||||
error "$(gettext "Failed to extract %s")" "$file"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ download_git() {
|
|||
msg2 "$(gettext "Cloning %s %s repo...")" "${repo}" "git"
|
||||
if ! git clone --mirror "$url" "$dir"; then
|
||||
error "$(gettext "Failure while downloading %s %s repo")" "${repo}" "git"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
elif (( ! HOLDVER )); then
|
||||
|
@ -58,7 +58,7 @@ download_git() {
|
|||
# Make sure we are fetching the right repo
|
||||
if [[ "$url" != "$(git config --get remote.origin.url)" ]] ; then
|
||||
error "$(gettext "%s is not a clone of %s")" "$dir" "$url"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
msg2 "$(gettext "Updating %s %s repo...")" "${repo}" "git"
|
||||
|
@ -87,13 +87,13 @@ extract_git() {
|
|||
cd_safe "${dir##*/}"
|
||||
if ! git fetch; then
|
||||
error "$(gettext "Failure while updating working copy of %s %s repo")" "${repo}" "git"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
cd_safe "$srcdir"
|
||||
elif ! git clone -s "$dir" "${dir##*/}"; then
|
||||
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -110,7 +110,7 @@ extract_git() {
|
|||
;;
|
||||
*)
|
||||
error "$(gettext "Unrecognized reference: %s")" "${fragment}"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
esac
|
||||
fi
|
||||
|
@ -119,7 +119,7 @@ extract_git() {
|
|||
tagname="$(git tag -l --format='%(tag)' "$ref")"
|
||||
if [[ -n $tagname && $tagname != "$ref" ]]; then
|
||||
error "$(gettext "Failure while checking out version %s, the git tag has been forged")" "$ref"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
@ -127,7 +127,7 @@ extract_git() {
|
|||
if [[ $ref != "origin/HEAD" ]] || (( updating )) ; then
|
||||
if ! git checkout --force --no-track -B makepkg "$ref" --; then
|
||||
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -49,7 +49,7 @@ download_hg() {
|
|||
msg2 "$(gettext "Cloning %s %s repo...")" "${repo}" "hg"
|
||||
if ! hg clone -U "$url" "$dir"; then
|
||||
error "$(gettext "Failure while downloading %s %s repo")" "${repo}" "hg"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
elif (( ! HOLDVER )); then
|
||||
|
@ -91,7 +91,7 @@ extract_hg() {
|
|||
;;
|
||||
*)
|
||||
error "$(gettext "Unrecognized reference: %s")" "${fragment}"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
esac
|
||||
fi
|
||||
|
@ -100,12 +100,12 @@ extract_hg() {
|
|||
cd_safe "${dir##*/}"
|
||||
if ! (hg pull && hg update -C -r "$ref"); then
|
||||
error "$(gettext "Failure while updating working copy of %s %s repo")" "${repo}" "hg"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
elif ! hg clone -u "$ref" "$dir" "${dir##*/}"; then
|
||||
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "hg"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ download_svn() {
|
|||
;;
|
||||
*)
|
||||
error "$(gettext "Unrecognized reference: %s")" "${fragment}"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
esac
|
||||
fi
|
||||
|
@ -70,7 +70,7 @@ download_svn() {
|
|||
mkdir -p "$dir/.makepkg"
|
||||
if ! svn checkout -r ${ref} --config-dir "$dir/.makepkg" "$url" "$dir"; then
|
||||
error "$(gettext "Failure while downloading %s %s repo")" "${repo}" "svn"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
elif (( ! HOLDVER )); then
|
||||
|
|
|
@ -39,7 +39,7 @@ source_makepkg_config() {
|
|||
source_safe "$MAKEPKG_CONF"
|
||||
else
|
||||
error "$(gettext "%s not found.")" "$MAKEPKG_CONF"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_CONFIG_ERROR
|
||||
fi
|
||||
|
||||
|
|
|
@ -43,12 +43,20 @@ colorize() {
|
|||
readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
|
||||
}
|
||||
|
||||
# plainerr/plainerr are primarily used to continue a previous message on a new
|
||||
# line, depending on whether the first line is a regular message or an error
|
||||
# output
|
||||
|
||||
plain() {
|
||||
(( QUIET )) && return
|
||||
local mesg=$1; shift
|
||||
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
||||
}
|
||||
|
||||
plainerr() {
|
||||
plain "$@" >&2
|
||||
}
|
||||
|
||||
msg() {
|
||||
(( QUIET )) && return
|
||||
local mesg=$1; shift
|
||||
|
|
|
@ -156,7 +156,7 @@ get_downloadclient() {
|
|||
# if we didn't find an agent, return an error
|
||||
if [[ -z $agent ]]; then
|
||||
error "$(gettext "Unknown download protocol: %s")" "$proto"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1 # $E_CONFIG_ERROR
|
||||
fi
|
||||
|
||||
|
@ -165,7 +165,7 @@ get_downloadclient() {
|
|||
if [[ ! -x $program ]]; then
|
||||
local baseprog="${program##*/}"
|
||||
error "$(gettext "The download program %s is not installed.")" "$baseprog"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1 # $E_MISSING_PROGRAM
|
||||
fi
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ dir_is_empty() {
|
|||
cd_safe() {
|
||||
if ! cd "$1"; then
|
||||
error "$(gettext "Failed to change to directory %s")" "$1"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -219,7 +219,7 @@ update_pkgver() {
|
|||
# Print 'source not found' error message and exit makepkg
|
||||
missing_source_file() {
|
||||
error "$(gettext "Unable to find source file %s.")" "$(get_filename "$1")"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_MISSING_FILE
|
||||
}
|
||||
|
||||
|
@ -354,7 +354,7 @@ error_function() {
|
|||
# first exit all subshells, then print the error
|
||||
if (( ! BASH_SUBSHELL )); then
|
||||
error "$(gettext "A failure occurred in %s().")" "$1"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
fi
|
||||
exit $E_USER_FUNCTION_FAILED
|
||||
}
|
||||
|
@ -672,7 +672,7 @@ create_package() {
|
|||
|
||||
if [[ ! -d $pkgdir ]]; then
|
||||
error "$(gettext "Missing %s directory.")" "\$pkgdir/"
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_MISSING_PKGDIR
|
||||
fi
|
||||
|
||||
|
@ -1145,23 +1145,23 @@ lint_config || exit $E_CONFIG_ERROR
|
|||
|
||||
# check that all settings directories are user-writable
|
||||
if ! ensure_writable_dir "BUILDDIR" "$BUILDDIR"; then
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_FS_PERMISSIONS
|
||||
fi
|
||||
|
||||
if (( ! (NOBUILD || GENINTEG) )) && ! ensure_writable_dir "PKGDEST" "$PKGDEST"; then
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_FS_PERMISSIONS
|
||||
fi
|
||||
|
||||
if ! ensure_writable_dir "SRCDEST" "$SRCDEST" ; then
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_FS_PERMISSIONS
|
||||
fi
|
||||
|
||||
if (( SOURCEONLY )); then
|
||||
if ! ensure_writable_dir "SRCPKGDEST" "$SRCPKGDEST"; then
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_FS_PERMISSIONS
|
||||
fi
|
||||
|
||||
|
@ -1171,7 +1171,7 @@ if (( SOURCEONLY )); then
|
|||
fi
|
||||
|
||||
if (( LOGGING )) && ! ensure_writable_dir "LOGDEST" "$LOGDEST"; then
|
||||
plain "$(gettext "Aborting...")"
|
||||
plainerr "$(gettext "Aborting...")"
|
||||
exit $E_FS_PERMISSIONS
|
||||
fi
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue