Commit bf458cce authored by Eli Schwartz's avatar Eli Schwartz Committed by Allan McRae
Browse files

libmakepkg: fix regression in sending plain() output to stderr

In commit 882e707e 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.
parent 381e1137
......@@ -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
}
......
......@@ -220,7 +220,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
}
......@@ -355,7 +355,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
}
......@@ -674,7 +674,7 @@ create_package() {
if [[ ! -d $pkgdir ]]; then
error "$(gettext "Missing %s directory.")" "\$pkgdir/"
plain "$(gettext "Aborting...")"
plainerr "$(gettext "Aborting...")"
exit $E_MISSING_PKGDIR
fi
......@@ -1147,23 +1147,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
......@@ -1173,7 +1173,7 @@ if (( SOURCEONLY )); then
fi
if (( LOGGING )) && ! ensure_writable_dir "LOGDEST" "$LOGDEST"; then
plain "$(gettext "Aborting...")"
plainerr "$(gettext "Aborting...")"
exit $E_FS_PERMISSIONS
fi
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment