# -*- shell-script -*- # These are some common functions used to test libguestfs. function pick_project () { # Try to guess which project this patch series is for. # You should put [PATCH hivex ...] or [PATCH supermin ...] # in the subject line. subject="$(grep -i -m1 '^Subject: ' $1)" project=libguestfs if [[ "$subject" =~ \[PATCH.*hivex.*\] ]]; then project=hivex elif [[ "$subject" =~ \[PATCH.*supermin.*\] ]]; then project=supermin elif [[ "$subject" =~ \[PATCH.*nbdkit.*\] ]]; then project=nbdkit fi url=https://github.com/libguestfs/$project } function checkout_sources () { echo echo "Checking out sources from $url ..." echo # Save network by using the local copy if it exists. if [ -d $HOME/d/$project ]; then cp -a $HOME/d/$project . pushd $project git checkout -f origin/master -B master git clean -xdf >/dev/null git pull popd else git clone $url fi } # Try to apply the patches. function apply_patches () { echo echo "Applying patches ..." echo cp "$@" $project/ pushd $project git am "$@" popd } # Set up localconfigure and localenv appropriately. function local_config () { pushd $project case "$project" in libguestfs) cat > localconfigure <<'EOF' ./autogen.sh \ --prefix /usr \ --libdir /usr/lib64 \ --disable-static \ --enable-werror \ --disable-golang \ -C \ "$@" EOF cat > localenv <<'EOF' export SKIP_TEST_PARALLEL_MOUNT_LOCAL=1 export SKIP_TEST_FUSE_UMOUNT_RACE_SH=1 export SKIP_TEST_GUESTMOUNT_FD=1 export SKIP_TEST_XFS_ADMIN=1 export SKIP_TEST_XFS_MISC_PL=1 export SKIP_TEST_SYSLINUX_PL=1 EOF ;; hivex) cat > localconfigure <<'EOF' ./autogen.sh \ --prefix /usr \ --libdir /usr/lib64 \ --enable-gcc-warnings EOF ;; supermin) cat > localconfigure <<'EOF' ./autogen.sh \ --prefix /usr \ --libdir /usr/lib64 \ --enable-werror EOF ;; nbdkit) cat > localconfigure <<'EOF' ./configure \ --prefix /usr \ --libdir /usr/lib64 \ --enable-gcc-warnings \ "$@" EOF ;; esac chmod +x localconfigure popd }