diff --git a/build-in-docker.conf b/build-in-docker.conf index 0524d0d..2fe6463 100644 --- a/build-in-docker.conf +++ b/build-in-docker.conf @@ -1,4 +1,5 @@ -repos+=" ppa:cordova-ubuntu/ppa" +packages+=" npm" +commands+=("npm install -g node" "npm install -g cordova") if test -n "${ANDROID_HOME}"; then envs+=" -e ANDROID_HOME=${ANDROID_HOME}" dirs+=" -v ${ANDROID_HOME}:${ANDROID_HOME}:ro" diff --git a/build-in-docker.sh b/build-in-docker.sh index b9a583d..ae9e631 100755 --- a/build-in-docker.sh +++ b/build-in-docker.sh @@ -6,7 +6,9 @@ repos="" keys="" envs="" dirs="-v $(pwd):/workdir" +packages="" targets="all check distcheck" +commands=() if test -e ./build-in-docker.conf; then # you can preconfigure the variables in file build-in-docker.conf # if you do so, add the file to EXTRA_DIST in makefile.am @@ -18,13 +20,15 @@ while test $# -gt 0; do echo "$0 [OPTIONS]" echo echo "OPTIONS:" - echo " -h, --help show this help" - echo " -i --image use given docker image instead of ${img}" - echo " -t --targets targets specify build targets, default: ${targets}" - echo " -r --repo add given apt repository" - echo " -k --key add public key from url" - echo " -e --env = set environment variable in docker" - echo " -d --dir access given directory read only" + echo " -h, --help show this help" + echo " -i, --image use given docker image instead of ${img}" + echo " -t, --targets targets specify build targets, default: ${targets}" + echo " -r, --repo add given apt repository" + echo " -k, --key add public key from url" + echo " -e, --env = set environment variable in docker" + echo " -d, --dir access given directory read only" + echo " -p, --package install extra debian packages" + echo " -x, --exe execute commands as root in docker" echo echo "EXAMPLE:" echo @@ -34,7 +38,8 @@ while test $# -gt 0; do echo " -d /opt/local/android \\" echo " -r universe \\" echo " -r https://dev.marc.waeckerlin.org/repository \\" - echo " -k https://dev.marc.waeckerlin.org/repository/PublicKey" + echo " -k https://dev.marc.waeckerlin.org/repository/PublicKey \\" + echo " -p mrw-c++" echo exit 0 ;; @@ -56,6 +61,12 @@ while test $# -gt 0; do (-d|--dirs) shift; dirs+=" -v $1:$1:ro" ;; + (-p|--package) shift; + packages+=" $1" + ;; + (-x|--exe) shift; + commands+=("$1") + ;; (*) echo "**** ERROR: unknown option '$1', try --help" 1>&2 exit 1 @@ -85,6 +96,12 @@ if test -n "${keys}"; then done fi docker exec ${DOCKER_ID} apt-get update +if test -n "${packages}"; then + docker exec -i ${DOCKER_ID} apt-get install -y ${packages} +fi +for command in "${commands[@]}"; do + docker exec -i ${DOCKER_ID} ${command} +done docker exec ${DOCKER_ID} ./resolve-debbuilddeps.sh docker exec -u $(id -u) ${DOCKER_ID} svn upgrade || true docker exec -u $(id -u) ${DOCKER_ID} ./bootstrap.sh -t "${targets}" diff --git a/debian/control.in b/debian/control.in index f3c744c..b0376db 100644 --- a/debian/control.in +++ b/debian/control.in @@ -1,7 +1,7 @@ Source: @PACKAGE_NAME@ Priority: extra Maintainer: @AUTHOR@ -Build-Depends: debhelper, subversion, pkg-config, automake, libtool, autotools-dev, lsb-release, doxygen, graphviz, mscgen, cordova-cli +Build-Depends: debhelper, subversion, pkg-config, automake, libtool, autotools-dev, lsb-release, doxygen, graphviz, mscgen Package: @PACKAGE_NAME@ Section: web