diff options
Diffstat (limited to 'testsuite/run-test-satisfy-depends.sh')
-rwxr-xr-x | testsuite/run-test-satisfy-depends.sh | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/testsuite/run-test-satisfy-depends.sh b/testsuite/run-test-satisfy-depends.sh new file mode 100755 index 0000000..abf6ee4 --- /dev/null +++ b/testsuite/run-test-satisfy-depends.sh @@ -0,0 +1,81 @@ +#!/bin/sh +# requires a working "pdebuild" + +set -e + +log() { + echo "$*" +} + +log_i() { + log "I: $*" +} + +log_e() { + log "I: $*" +} + +result() { + result=$1 + package=$2 + version=$3 + echo "[$result] $package $version" >>$RESULTFILE +} + +self="$(basename "$0")" + +log_i "Starting $self at $(LC_ALL=C date)" + +PDEBUILD="pdebuild" + +RESULTFILE="$(readlink -f "$(basename "$0" .sh).log")" +log_i "Resetting result file $(basename "$RESULTFILE")" +: > "$RESULTFILE" +RESULTFILE="$(readlink -f "$RESULTFILE")" + +WORK_DIR="satisfydepends/work" +[ -d "$WORK_DIR" ] && rm -rf "$WORK_DIR" +mkdir -p "$WORK_DIR" +WORK_DIR="$(readlink -f "$WORK_DIR")" + +RESULT_DIR="$WORK_DIR/result" +[ -d "$RESULT_DIR" ] && rm -rf "$RESULT_DIR" +mkdir -p "$RESULT_DIR" +RESULT_DIR="$(readlink -f "$RESULT_DIR")" + +for control in satisfydepends/*.control; do + changelog=satisfydepends/$(basename $control .control).changelog + package=$(basename $control .control | sed 's/_.*//') + version=$(basename $control .control | sed -n 's/.*_//p') + if [ -z "$version" ]; then + log_e "Could not extract version for package $package/$version, skipping" + continue + fi + if ! [ -e $changelog ]; then + log_e "Could not find $changelog for package $package/$version, skipping" + continue + fi + log_i "Preparing build for package $package/$version" + package_dir="$WORK_DIR/$package" + # cleanup + [ -d "$package_dir" ] && rm -rf "$package_dir" + # create package structure + mkdir -p "$package_dir/debian" + cp -l satisfydepends/debian/* "$package_dir/debian" + cp -l $changelog "$package_dir/debian/changelog" + cp -l $control "$package_dir/debian/control" + log_i "Building package $package/$version as \"$PDEBUILD --buildresult $RESULT_DIR -- --pkgname-logfile\" in $package_dir" + if (cd "$package_dir"; $PDEBUILD --buildresult "$RESULT_DIR" -- --pkgname-logfile); then + log_i "Build of $package/$version successful" + result SUCCESS $package $version + else + log_i "Build of $package/$version failed" + result FAIL $package $version + fi +done + +# cleanup +rm -rf "$RESULT_DIR" +rm -rf "$WORK_DIR" + +log_i "Finishing $self at $(LC_ALL=C date)" |