view contrib/builddeb @ 27396:64c584070fc7

run-tests: show scheduling with --showchannels This gives one line of output per second with one column per -j level that allows analyzing test scheduling problems. First 24 seconds of output at -j 30 looks like this: 0 . 1 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = s. 2 c c o c r l g r s s = c p = c h c a h c g c h c b c c l l c ss 3 h o b o e a e u u u c o a h o e o c g o l h g h u o = a o = s 4 e n s n b r n n b b m t g n l n l w n o e w e n n e r g i . 5 c t o = a g d - r r = m c w v p v . e v g c e c d v x g . m 6 k r l r s e o t e e b a h e e . e . b e . k b k l e t e . p 7 - i e e e f c e p p u n b b r . r . - r . - - - e r e f . o . 8 p b t v - i . s o o n d o d t . t . c t . c s = 2 t n i . r 9 y - e s c l . t - . d - m i - . - . o - . o y r - - s l . t 10 3 p - e h e . s s . l t b r s . s . m s . d m e f s i e . . 11 - e c t e s . . v . e e . . v . v . m v . e r n o v o s . . 12 c r h . c - . . n . 2 m . . n . n . a n . . e a r n n . . . 13 o f e . k u . . . . - p . . - . - . n - . . v m m - . . . . 14 m . c . - p . . . . e l . . s . m . d s . . . e a e . . . . 15 p . k . r d . . . . x a . . i . o . s o . . . - t n . . . . 16 a . h . e a . . . . c t . . n . v . . u . . . m . c . . . . 17 t . e . s t . . . . h e . . k . e . . r . . . e . o . . . . 18 . . a . t e . . . . a . . . . . . . . c . . . r . d . . . . 19 . . d . o . . . . . n . . . . . . . . e . . . g . i . . . . 20 . . s . r . . . . . g . . . . . . . . . . . . e . n . . . . 21 . . . . e . . . . . e . . . . . . . . . . . . 2 . g . . . . 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . . . . = . . . . ^C Test names read off vertically, beginning with '='. Idle time (not shown) appears as blank space.
author Matt Mackall <mpm@selenic.com>
date Mon, 07 Dec 2015 16:16:06 -0600
parents ef9301ce6046
children 4f1dac94b53f
line wrap: on
line source

#!/bin/sh -e
#
# Build a Mercurial debian package from the current repo
#
# Tested on Jessie (stable as of original script authoring.)

. $(dirname $0)/packagelib.sh

BUILD=1
CLEANUP=1
DISTID=`(lsb_release -is 2> /dev/null | tr '[:upper:]' '[:lower:]') || echo debian`
CODENAME=`lsb_release -cs 2> /dev/null || echo unknown`
while [ "$1" ]; do
    case "$1" in
    --distid )
        shift
        DISTID="$1"
        shift
        ;;
    --codename )
        shift
        CODENAME="$1"
        shift
        ;;
    --cleanup )
        shift
        BUILD=
        ;;
    --build )
        shift
        CLEANUP=
        ;;
    * )
        echo "Invalid parameter $1!" 1>&2
        exit 1
        ;;
    esac
done

trap "if [ '$CLEANUP' ] ; then rm -r '$PWD/debian' ; fi" EXIT

set -u

if [ ! -d .hg ]; then
    echo 'You are not inside a Mercurial repository!' 1>&2
    exit 1
fi

gethgversion
debver="$version"
if [ -n "$type" ] ; then
    debver="$debver~$type"
fi
if [ -n "$distance" ] ; then
    debver="$debver+$distance-$node"
fi

control=debian/control
changelog=debian/changelog

if [ "$BUILD" ]; then
    if [ -d debian ] ; then
        echo "Error! debian control directory already exists!"
        exit 1
    fi

    cp -r $PWD/contrib/debian debian
    chmod -R 0755 debian

    # This looks like sed -i, but sed -i behaves just differently enough
    # between BSD and GNU sed that I gave up and did the dumb thing.
    sed "s/__VERSION__/$debver/" < $changelog > $changelog.tmp
    date=$(date --rfc-2822)
    sed "s/__DATE__/$date/" < $changelog.tmp > $changelog
    rm $changelog.tmp

    debuild -us -uc -b
    if [ $? != 0 ]; then
        echo 'debuild failed!'
        exit 1
    fi

fi
if [ "$CLEANUP" ] ; then
    echo
    OUTPUTDIR=${OUTPUTDIR:=packages/$DISTID-$CODENAME}
    mkdir -p "$OUTPUTDIR"
    find ../mercurial*.deb ../mercurial_*.build ../mercurial_*.changes \
          -type f -newer $control -print0 | \
      xargs -Inarf -0 mv narf "$OUTPUTDIR"
    echo "Built packages for $debver:"
    find "$OUTPUTDIR" -type f -newer $control -name '*.deb'
fi