aboutsummaryrefslogtreecommitdiff
path: root/testsuite/run-test-satisfy-depends.sh
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/run-test-satisfy-depends.sh')
-rwxr-xr-xtestsuite/run-test-satisfy-depends.sh81
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)"