fix output for mac

This commit is contained in:
Marc Wäckerlin
2017-12-06 14:54:40 +00:00
parent 186a7dde78
commit ef69ea0655
2 changed files with 215 additions and 139 deletions

View File

@@ -302,7 +302,91 @@ EOF
shift; shift;
done done
echo -en "\e[1m-> checking:\e[0m for version control system ..." # check if stdout is a terminal...
if test -t 1; then
# see if it supports colors...
ncolors=$(tput colors)
if test -n "$ncolors" && test $ncolors -ge 8; then
bold="$(tput bold)"
underline="$(tput smul)"
standout="$(tput smso)"
normal="$(tput sgr0)"
black="$(tput setaf 0)"
red="$(tput setaf 1)"
green="$(tput setaf 2)"
yellow="$(tput setaf 3)"
blue="$(tput setaf 4)"
magenta="$(tput setaf 5)"
cyan="$(tput setaf 6)"
white="$(tput setaf 7)"
fi
fi
notice() {
echo "${yellow}→ notice: ${bold}$*${normal}"
}
running() {
echo -n "${bold}${blue}→ running: ${bold}${white}$*${normal}"
}
checking() {
echo -n "${bold}${blue}→ checking: ${bold}${white}$*${normal}"
}
generating() {
echo -n "${bold}${blue}→ generating: ${bold}${white}$*${normal}"
}
configuring() {
echo -n "${bold}${blue}→ configuring ${bold}${white}$1${normal}:"
shift
echo -n "${white}$*${normal}"
}
ignored() {
echo "${bold}${yellow}ignored $*${normal}"
}
success() {
echo "${bold}${green}success $*${normal}"
}
error() {
echo "${bold}${red}→ error: $1${normal}"
shift
if test -n "$*"; then
echo "${bold}$*${normal}"
fi
exit 1
}
run() {
check=1
while test $# -gt 0; do
case "$1" in
(--no-check) check=0;;
(*) break;;
esac
shift;
done
running $*
result=$($* 2>&1)
res=$?
if test $res -ne 0; then
if test $check -eq 1; then
error "Failed with return code: $res" "$result"
else
ignored
fi
else
success
fi
}
checking for version control system
VCS="" VCS=""
VCSDEPENDS="" VCSDEPENDS=""
for path in . .. ../.. ../../..; do for path in . .. ../.. ../../..; do
@@ -310,18 +394,18 @@ for path in . .. ../.. ../../..; do
VCS="svn" VCS="svn"
VCSDEPENDS_DEB="svn2cl, subversion, subversion-tools," VCSDEPENDS_DEB="svn2cl, subversion, subversion-tools,"
VCSDEPENDS_RPM="subversion, " VCSDEPENDS_RPM="subversion, "
echo -e " \e[32msuccess\e[0m detected ${VCS}" success detected ${VCS}
break break
elif test -d ${path}/.git; then elif test -d ${path}/.git; then
VCS="git" VCS="git"
VCSDEPENDS_DEB="git2cl, git," VCSDEPENDS_DEB="git2cl, git,"
VCSDEPENDS_RPM="git, " VCSDEPENDS_RPM="git, "
echo -e " \e[32msuccess\e[0m detected ${VCS}" success detected ${VCS}
break break
fi fi
done done
if test -z "$VCS"; then if test -z "$VCS"; then
echo -e " \e[33mignored\e[0m" ignored
fi fi
HEADER='## @id '"\$Id\$"' HEADER='## @id '"\$Id\$"'
@@ -349,43 +433,6 @@ CHEADER='/** @id '"\$Id\$"'
' '
notice() {
echo -e "\e[1;33m$*\e[0m"
}
error() {
echo -e " \e[31merror\e[0m $*"
exit 1
}
run() {
check=1
while test $# -gt 0; do
case "$1" in
(--no-check) check=0;;
(*) break;;
esac
shift;
done
echo -en "\e[1m-> running:\e[0m $* ..."
result=$($* 2>&1)
res=$?
if test $res -ne 0; then
if test $check -eq 1; then
echo -e " \e[31merror\e[0m"
echo -e "\e[1m*** Failed with return code: $res\e[0m"
if test -n "$result"; then
echo "$result"
fi
exit 1
else
echo -e " \e[33mignored\e[0m"
fi
else
echo -e " \e[32msuccess\e[0m"
fi
}
testtag() { testtag() {
local IFS="|" local IFS="|"
egrep -q '^ *'"($*)"' *(\(.*)? *$' configure.ac egrep -q '^ *'"($*)"' *(\(.*)? *$' configure.ac
@@ -438,18 +485,13 @@ to() {
return 1 return 1
fi fi
checkdir "$(dirname ${1})" checkdir "$(dirname ${1})"
echo -en "\e[1m-> generating:\e[0m $1 ..." generating $1
result=$(cat > "$1" 2>&1) result=$(cat > "$1" 2>&1)
res=$? res=$?
if test $res -ne 0; then if test $res -ne 0; then
echo -e " \e[31merror\e[0m" error "Failed with return code: $res" "$result"
echo -e "\e[1m*** Failed with return code: $res\e[0m"
if test -n "$result"; then
echo "$result"
fi
exit 1
else else
echo -e " \e[32msuccess\e[0m" success
fi fi
run chmod $mode $1 run chmod $mode $1
if test $exists -eq 0; then if test $exists -eq 0; then
@@ -491,24 +533,20 @@ copy() {
} }
doxyreplace() { doxyreplace() {
echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..." configuring doxyfile $1
if sed -i 's|\(^'"$1"' *=\) *.*|\1'" $2"'|g' doc/doxyfile.in; then if sed -i 's|\(^'"$1"' *=\) *.*|\1'" $2"'|g' doc/doxyfile.in; then
echo -e " \e[32msuccess\e[0m" success
else else
echo -e " \e[31merror\e[0m" error $0 $*
echo -e "\e[1m**** command: $0 $*\e[0m"
exit 1
fi fi
} }
doxyadd() { doxyadd() {
echo -en "\e[1m-> doxyfile:\e[0m configure $1 ..." configuring doxyfile $1
if sed -i '/^'"$1"' *=/a'"$1"' += '"$2" doc/doxyfile.in; then if sed -i '/^'"$1"' *=/a'"$1"' += '"$2" doc/doxyfile.in; then
echo -e " \e[32msuccess\e[0m" success
else else
echo -e " \e[31merror\e[0m" error $0 $*
echo -e "\e[1m**** command: $0 $*\e[0m"
exit 1
fi fi
} }
@@ -1801,9 +1839,9 @@ fi
aclocal aclocal
$(if testtag AX_USE_LIBTOOL; then $(if testtag AX_USE_LIBTOOL; then
cat <<EOF1 cat <<EOF1
if which -s libtoolize; then if which libtoolize > /dev/null; then
run libtoolize --force; run libtoolize --force;
elif which -s glibtoolize; then elif which glibtoolize > /dev/null; then
run glibtoolize --force; run glibtoolize --force;
else else
echo "error: libtoolize not found" 1>&2 echo "error: libtoolize not found" 1>&2
@@ -1879,9 +1917,9 @@ else
run --no-check vcs2cl run --no-check vcs2cl
run aclocal run aclocal
if testtag AX_USE_LIBTOOL; then if testtag AX_USE_LIBTOOL; then
if which -s libtoolize; then if which libtoolize > /dev/null; then
run libtoolize --force; run libtoolize --force;
elif which -s glibtoolize; then elif which glibtoolize > /dev/null; then
run glibtoolize --force; run glibtoolize --force;
else else
error libtoolize not found error libtoolize not found

View File

@@ -1,42 +1,137 @@
#!/bin/bash -e #!/bin/bash -e
# template for bash scripts ##########################################################################################
#### template for bash scripts #### START BELOW ##########################################
##########################################################################################
############################################################################ begin logging
# check if stdout is a terminal...
if test -t 1; then
# see if it supports colors...
ncolors=$(tput colors)
if test -n "$ncolors" && test $ncolors -ge 8; then
bold="$(tput bold)"
underline="$(tput smul)"
standout="$(tput smso)"
normal="$(tput sgr0)"
black="$(tput setaf 0)"
red="$(tput setaf 1)"
green="$(tput setaf 2)"
yellow="$(tput setaf 3)"
blue="$(tput setaf 4)"
magenta="$(tput setaf 5)"
cyan="$(tput setaf 6)"
white="$(tput setaf 7)"
fi
fi
# internal use only
append_msg() { append_msg() {
if test $# -ne 0; then if test $# -ne 0; then
echo -en ":\e[0m \e[1m$*" echo -n ": ${bold}$*"
fi fi
echo -e "\e[0m" echo "${normal}"
}
# write a message
message() {
if test $# -eq 0; then
return
fi
echo "${bold}${while}$*${normal}" 1>&2
}
# write a success message
success() {
echo -n "${bold}${green}success" 1>&2
append_msg $* 1>&2
} }
# write a notice # write a notice
notice() { notice() {
if test $# -eq 0; then echo -n "${bold}${yellow}notice" 1>&2
return
fi
echo -e "\e[1m$*\e[0m" 1>&2
}
# write error message
error() {
echo -en "\e[1;31merror" 1>&2
append_msg $* 1>&2 append_msg $* 1>&2
} }
# write a warning message # write a warning message
warning() { warning() {
echo -en "\e[1;33mwarning" 1>&2 echo -en "${bold}${red}warning" 1>&2
append_msg $* 1>&2 append_msg $* 1>&2
} }
# write a success message # write error message
success() { error() {
echo -en "\e[1;32msuccess" 1>&2 echo -en "${bold}${red}error" 1>&2
append_msg $* 1>&2 append_msg $* 1>&2
} }
# commandline parameter evaluation # run a command, print the result and abort in case of error
# option: --ignore: ignore the result, continue in case of error
run() {
ignore=1
while test $# -gt 0; do
case "$1" in
(--ignore) ignore=0;;
(*) break;;
esac
shift;
done
echo -n "${bold}${yellow}running:${white} $*${normal}"
set +e
result=$($* 2>&1)
res=$?
set -e
if test $res -ne 0; then
if test $ignore -eq 1; then
error "failed with return code: $res"
if test -n "$result"; then
echo "$result"
fi
exit 1
else
warning "ignored return code: $res"
fi
else
success
fi
}
############################################################################ error handler
function traperror() {
set +x
local err=($1) # error status
local line="$2" # LINENO
local linecallfunc="$3"
local command="$4"
local funcstack="$5"
for e in ${err[@]}; do
if test -n "$e" -a "$e" != "0"; then
error "line $line - command '$command' exited with status: $e (${err[@]})"
if [ "${funcstack}" != "main" -o "$linecallfunc" != "0" ]; then
echo -n " ... error at ${funcstack} " 1>&2
if [ "$linecallfunc" != "" ]; then
echo -n "called at line $linecallfunc" 1>&2
fi
echo
fi
exit $e
fi
done
success
exit 0
}
# catch errors
trap 'traperror "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' ERR SIGINT INT TERM EXIT
##########################################################################################
#### START HERE ##########################################################################
##########################################################################################
######################################################### commandline parameter evaluation
while test $# -gt 0; do while test $# -gt 0; do
case "$1" in case "$1" in
(--help|-h) less <<EOF (--help|-h) less <<EOF
@@ -60,62 +155,5 @@ EOF
shift; shift;
done done
# run a command, print the result and abort in case of error ##################################################################################### Main
# option: --no-check: ignore the result, continue in case of error
run() {
check=1
while test $# -gt 0; do
case "$1" in
(--no-check) check=0;;
(*) break;;
esac
shift;
done
echo -en "\e[1m-> running:\e[0m $* ..."
result=$($* 2>&1)
res=$?
if test $res -ne 0; then
if test $check -eq 1; then
error "failed with return code: $res"
if test -n "$result"; then
echo "$result"
fi
exit 1
else
warning "ignored return code: $res"
fi
else
success
fi
}
# error handler
function traperror() {
set +x
local err=($1) # error status
local line="$2" # LINENO
local linecallfunc="$3"
local command="$4"
local funcstack="$5"
for e in ${err[@]}; do
if test -n "$e" -a "$e" != "0"; then
error "line $line - command '$command' exited with status: $e (${err[@]})"
if [ "${funcstack}" != "main" -o "$linecallfunc" != "0" ]; then
echo -n " ... error at ${funcstack} "
if [ "$linecallfunc" != "" ]; then
echo -n "called at line $linecallfunc"
fi
echo
fi
exit $e
fi
done
success
exit 0
}
# catch errors
trap 'traperror "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' ERR SIGINT INT TERM EXIT
##########################################################################################