X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/ab9fae2a7024947a944b3448930801eae1ce4003..e555fac76a951f1433487e5215966aee640b9407:/bin/mdw-build?ds=sidebyside diff --git a/bin/mdw-build b/bin/mdw-build index 27eac50..09f99d5 100755 --- a/bin/mdw-build +++ b/bin/mdw-build @@ -188,13 +188,11 @@ case $jobs in 1) ;; *) makeopts="$makeopts -j$jobs" ;; esac ## ## 0 -- original stdin (never touched) ## 1, 2 -- stdout, stderr, redirected to 3 while running comamnds -## log -- original stderr (verbose), or logfile (quiet); captures command -## output -## diag -- null (verbose), or logfile (quiet); primary diagnostic output +## log -- logfile and original stderr (verbose), or logfile only (quiet); +## captures command output +## diag -- logfile; primary diagnostic output ## term -- orginal stderr; secondary diagnostic output (with colours) -exec {log}>&2 {diag}>/dev/null {term}>&2 - notify () { colour=$1 message=$2 echo $message >&$diag @@ -224,7 +222,7 @@ assign () { runx () { notify 2 "+++ $*" - "$@" 2>&$log {log}>&- {diag}>&- {term}>&- || fail "$1: exit $?" + nice "$@" 2>&$log {log}>&- {diag}>&- {term}>&- || fail "$1: exit $?" } run () { runx "$@" >&$log; } @@ -253,8 +251,7 @@ while [ ! -f configure.ac -a ! -f configure.in -a \ esac cd .. done -assign toppath $(pwd) -assign srcpath $toppath +toppath=$(pwd) ## Build any necessary qualifiers. qual= sep=. @@ -264,20 +261,25 @@ case ${SBOX_SESSION_DIR+t},${DEB_BUILD_ARCH+t} in esac ## Construct the output directory. -assign releasepath $srcpath/dist-$build$qual +releasepath=$toppath/dist-$build$qual chmod -R +w $releasepath 2>/dev/null || : rm -rf $releasepath 2>/dev/null || : mkdir $releasepath +logfile=$releasepath/mdw-build.log +exec {term}>&2 +exec {diag}>>$logfile || fail "Failed to create log." case $verbose in - no) - exec {log}>&- {diag}>&- - exec {diag}>$releasepath/mdw-build.log {log}>&$diag || - fail "Failed to create log." - ;; + no) exec {log}>&$diag ;; + yes) exec {log}> >(tee -a $logfile >&$term {term}>&- {diag}>&-) ;; esac +## Repeat the earlier assignments for tbe benefit of the logfile. +assign toppath $toppath +assign releasepath $releasepath +assign logfile $logfile + ## Do we have a Git repository? -case "$checkout,$setup,$(yesno [ -d $srcpath/.git ])" in +case "$checkout,$setup,$(yesno [ -d $toppath/.git ])" in yes,no,*) fail "Inconsistent options: can't check out without setup." ;; @@ -286,14 +288,14 @@ case "$checkout,$setup,$(yesno [ -d $srcpath/.git ])" in checkout=no gitver=none ;; yes,yes,yes) - cd $srcpath + cd $toppath [ "$(git ls-files -m)" = "" ] || warn "working tree has uncommitted changes" ;; esac ## Is there Debian build equipment? -case "$debian,$(yesno [ -d $srcpath/debian ])" in +case "$debian,$(yesno [ -d $toppath/debian ])" in yes,no) info "No debian directory found." debian=no debver=none @@ -312,7 +314,7 @@ esac case "$checkout" in yes) cd $releasepath - run git clone -sn $srcpath/.git _source + run git clone -sn $toppath/.git _source assign srcpath $releasepath/_source cd $srcpath run git update-ref refs/heads/mdw-build $checkoutrev "" @@ -321,6 +323,9 @@ case "$checkout" in run git checkout-index -afu assign gitversion "$(git describe --abbrev=4)" ;; + no) + assign srcpath $toppath + ;; esac ## Check the version number.